当前位置: 首页 > news >正文

linux:使用sar诊断问题

使用sar诊断问题

      • 1. CPU 使用情况
      • 2. 内存与交换
      • 3. 磁盘 I/O 活动
      • 4. 网络 I/O 活动
      • 5. 进程与上下文切换
      • 6. 系统调用与文件活动
      • 7. 电源管理
      • 8. 延迟分析
      • 9. 系统全局统计
      • 10. 查看历史记录
      • 11. 特定时间段
      • 12. 自动定时采样
      • 其他参数:
      • 使用实例:

sar(System Activity Reporter)是 sysstat 工具包中的命令,用于收集、报告和保存各种系统活动的统计信息。它可以监控 CPU、内存、磁盘 I/O、网络等多种资源的使用情况。你可以通过不同的参数来获取不同类型的系统活动统计。

以下是 sar 命令的常见参数及其详细解释:

1. CPU 使用情况

  • sar -u:报告 CPU 的整体使用情况,包括用户、系统、空闲等时间的百分比。
  • sar -u [间隔] [次数]:每隔一段时间采集一次 CPU 使用数据并报告多次。
  • sar -P:报告每个 CPU 的使用情况。
  • sar -P ALL:报告所有 CPU 的使用情况。
  • sar -P <CPU>:报告指定 CPU 的使用情况。

sar -u 输出内容解释:

[baichao@localhost linux-5.6]$ sar -u 1 3
Linux 3.10.0-1160.102.1.el7.x86_64 (localhost.localdomain)      10/11/2024      _x86_64_        (8 CPU)03:32:22 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
03:32:23 AM     all     99.43      0.00      0.57      0.00      0.00      0.00
03:32:24 AM     all     99.42      0.00      0.58      0.00      0.00      0.00
03:32:25 AM     all     99.41      0.00      0.59      0.00      0.00      0.00
Average:        all     99.42      0.00      0.58      0.00      0.00      0.00

参数解释:

  • sar -u 1 3:表示每秒采样一次 CPU 数据,并输出 3 次。

各列的含义:

  • %user:用户空间进程的 CPU 使用率(执行应用程序的时间占用率)。
  • %nice:带有正优先级(nice 值)的用户进程的 CPU 使用率。
  • %system:内核空间(系统级)进程的 CPU 使用率(执行系统调用和内核操作的时间占用率)。
  • %iowait:等待 I/O 操作完成的时间占 CPU 总时间的百分比。值越高,说明系统可能有 I/O 瓶颈。
  • %steal:虚拟机管理程序(hypervisor)从该虚拟机“窃取”的 CPU 时间。
  • %idle:空闲时间,即 CPU 无事可做的时间。如果系统在繁忙的情况下有较高的 idle 值,可能有资源调度或系统瓶颈问题。

通过 sar -u,可以分析系统的 CPU 性能,了解 CPU 是处于忙碌状态还是有足够的空闲资源,以及是否有 I/O 或 CPU 相关的瓶颈。

2. 内存与交换

  • sar -r:报告内存的使用情况,包括物理内存和交换空间的统计数据。

    • 包括 kbmemfree(空闲物理内存)、kbmemused(已用物理内存)、%memused(已用内存百分比)、kbswpfree(空闲交换空间)等。
  • sar -S:报告交换空间的活动情况,包括交换入和交换出的数据量。

    • 包括 pswpin/s(每秒交换到内存中的页数)、pswpout/s(每秒交换到磁盘中的页数)。

你运行的 sar -r 命令用于显示 Linux 系统中的内存使用情况。它生成了一段时间内的内存使用统计,包括空闲内存、已使用内存、缓存和缓冲区等信息。

[baichao@localhost linux-5.6]$ sar -r
Linux 3.10.0-1160.102.1.el7.x86_64 (localhost.localdomain)      10/11/2024      _x86_64_        (8 CPU)03:30:02 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
03:40:01 AM  11165664   5081720     31.28      2108   2923356   2114924      8.63   3930476    587340         0
03:50:01 AM  11160444   5086940     31.31      2108   2923364   2181620      8.90   3933536    587348         0
04:00:02 AM  11156368   5091016     31.33      2108   2923372   2181004      8.90   3936384    586940         4
Average:     11160825   5086559     31.31      2108   2923364   2159183      8.81   3933465    587209         104:00:40 AM       LINUX RESTART

各列的含义:

  1. kbmemfree:系统中空闲的内存,以 KB 为单位。
  2. kbmemused:系统中已使用的内存,以 KB 为单位。
  3. %memused:已使用内存占总内存的百分比。
  4. kbbuffers:用于存储硬盘数据的缓冲区大小(以 KB 为单位),这部分内存将用于硬盘 I/O 操作。
  5. kbcached:文件系统缓存的大小(以 KB 为单位),这部分内存用于缓存常用的文件数据,以提高访问速度。
  6. kbcommit:已提交的内存大小(以 KB 为单位),表示需要保证的内存大小,即使系统过度使用交换空间。这个数值包括所有正在使用或即将被使用的内存。
  7. %commit:已提交内存占系统内存的百分比。
  8. kbactive:处于活动状态的内存(以 KB 为单位),这些内存正在被频繁访问。
  9. kbinact:处于非活动状态的内存(以 KB 为单位),这些内存包含不经常使用的数据,但仍然保留在内存中以便快速访问。
  10. kbdirty:当前等待写入到磁盘的脏页(以 KB 为单位),表示修改过但尚未写入磁盘的数据。
第一行的数据可以理解为:
- **03:30:02 AM** 时间点:
- 系统有 **11165664 KB** 的空闲内存,已使用内存为 **5081720 KB**,已使用内存占 **31.28%**。
- 缓冲区大小为 **2108 KB**,文件缓存大小为 **2923356 KB**。
- 已提交的内存为 **2114924 KB**,提交率为 **8.63%**。
- 活动内存为 **3930476 KB**,非活动内存为 **587340 KB**,脏数据为 **0 KB**。

重新启动信息

04:00:40 AM       LINUX RESTART

这个表示系统或 sysstat 服务在 04:00:40 AM 重新启动,所有统计从这个时间开始重新计算。

总结:

  • 该输出显示系统从 03:30 到 04:00 的内存使用情况。
  • 系统平均使用了大约 31.31% 的物理内存,空闲内存大约是 11160825 KB,文件缓存和缓冲区数据量稳定。
  • 系统的内存使用相对较低,kbdirty 数据很少,表示几乎没有脏数据等待写入磁盘。
  • 最后,系统在 04:00:40 进行了重启,可能是计划任务或手动重启的结果。

3. 磁盘 I/O 活动

  • sar -b:报告块设备的 I/O 传输情况。

    • 包括 tps(每秒传输数)、rtps(每秒读请求数)、wtps(每秒写请求数)、bread/s(每秒从设备读取的块数)等。
  • sar -d:报告每个设备的 I/O 活动情况(需要启用 sadf)。

    • 包括 tpsrd_sec/swr_sec/s 等设备读写统计。
[baichao@localhost linux-5.6]$ sar -b
Linux 3.10.0-1160.102.1.el7.x86_64 (localhost.localdomain)      10/11/2024      _x86_64_        (8 CPU)03:30:02 AM       tps      rtps      wtps   bread/s   bwrtn/s
03:40:01 AM      3.24      1.49      1.75    102.16    125.10
03:50:01 AM      0.10      0.00      0.10      0.00      0.88
04:00:02 AM      0.08      0.00      0.08      0.00      0.64
Average:         1.14      0.50      0.64     34.00     42.1504:00:40 AM       LINUX RESTART04:10:01 AM       tps      rtps      wtps   bread/s   bwrtn/s
04:20:01 AM      0.21      0.00      0.21      0.03      2.81
Average:         0.21      0.00      0.21      0.03      2.81

每一列代表不同的块设备 I/O 指标:

  1. tps:每秒传输的块数(transactions per second),表示每秒进行的读写请求的总数。3.24,表示每秒进行约 3.24 次读写请求。
  2. rtps:每秒读取的块数(reads per second),表示每秒进行的读取请求的数量。1.49,表示每秒进行约 1.49 次读取请求。
  3. wtps:每秒写入的块数(writes per second),表示每秒进行的写入请求的数量。1.75,表示每秒进行约 1.75 次写入请求。
  4. bread/s:每秒读取的块数(bytes read per second),表示每秒从块设备读取的数据量,以字节为单位。 102.16,表示每秒读取的数据量约为 102.16 字节
  5. bwrtn/s:每秒写入的块数(bytes written per second),表示每秒写入到块设备的数据量,以字节为单位。125.10,表示每秒写入的数据量约为 125.10 字节

4. 网络 I/O 活动

  • sar -n:报告网络活动。
  • sar -n DEV:显示网络接口的统计数据,包括传输和接收的字节数、数据包数等。
  • sar -n EDEV:显示带有错误的网络设备统计信息。
  • sar -n SOCK:显示 TCP/IP 套接字的统计数据。
  • sar -n IP:显示 IP 协议的统计数据,如发送、接收、转发的 IP 数据包。
  • sar -n TCP:显示 TCP 连接的统计数据。
  • sar -n UDP:显示 UDP 统计数据。
sar -n DEV -f /var/log/sa/sa01:查看本月 1 号的网卡流量情况
sar -n SOCK -f /var/log/sa/sa01:查看本月 1 号的网络连接情况

5. 进程与上下文切换

  • sar -w:报告进程上下文切换的统计信息。

    • 包括 proc/s(每秒创建的进程数)、cswch/s(每秒上下文切换次数)。
  • sar -q:报告系统负载(包括运行队列和等待队列长度)。

6. 系统调用与文件活动

  • sar -v:报告文件表、inode 表、缓冲区和内核内部的相关信息。

    • 包括 dentunusd(未使用的目录项)、file-nr(文件表中的打开文件数量)等。
  • sar -y:报告 TTY 设备活动(终端设备)。

7. 电源管理

  • sar -m:报告电源状态统计信息,适用于带有电池的设备。
    • sar -m POWER:显示电源的消耗状态。

8. 延迟分析

  • sar -B:报告分页活动的统计信息。
    • 包括 pgpgin/s(每秒交换到内存中的页数)、pgpgout/s(每秒交换到磁盘中的页数)。

9. 系统全局统计

  • sar -A:报告所有可用的系统活动统计信息的综合报告。
    • 通常是最全面的报告方式,适合需要了解系统整体性能的情况。

10. 查看历史记录

  • sar -f <文件>:从指定的文件中读取历史数据(通常是 /var/log/sa/ 目录下的文件)。
    • 可用于查看过去的性能数据。

11. 特定时间段

  • sar -s <起始时间> -e <结束时间>:报告在特定时间段内的数据。
    • 格式为 HH:MM:SS,例如:sar -s 08:00:00 -e 12:00:00 会报告从 08:00 到 12:00 之间的系统活动。

12. 自动定时采样

  • crontab 配置sar 通常结合 crond,通过定时任务自动采集系统性能数据,配置文件一般在 /etc/cron.d/sysstat

其他参数:

  • -h:生成更易读的格式(例如将 kB 格式化为 MB)。
  • -o <文件>:将报告输出到指定的文件中,供以后分析。
  • -i <间隔>:设置采样间隔时间(单位:秒)。

使用实例:

  • 查看实时 CPU 使用率sar -u 1 5 (每秒采集一次,共采集 5 次)
  • 查看过去的网络流量情况sar -n DEV -f /var/log/sa/sa10

相关文章:

linux:使用sar诊断问题

使用sar诊断问题 1. CPU 使用情况2. 内存与交换3. 磁盘 I/O 活动4. 网络 I/O 活动5. 进程与上下文切换6. 系统调用与文件活动7. 电源管理8. 延迟分析9. 系统全局统计10. 查看历史记录11. 特定时间段12. 自动定时采样其他参数&#xff1a;使用实例&#xff1a; sar&#xff08;S…...

CUDA编程技巧(不断搜集更新)

1 使用位运算替换部分乘法或除法 位移操作主要适用于无符号整数&#xff0c;对于带符号数的位移&#xff0c;特别是负数&#xff0c;可能会导致问题&#xff0c;如果你需要对负数执行除法或者乘法&#xff0c;最好谨慎使用位移运算。 1.1 替换除法 当需要将一个数除以 2、4、…...

云计算(第二阶段):mysql后的shell

第一章&#xff1a;变量 前言 什么是shell Shell 是一种提供用户与操作系统内核交互的工具&#xff0c;它接受用户输入的命令&#xff0c;解释后交给操作系统去执行。它不仅可以作为命令解释器&#xff0c;还可以通过脚本完成一系列自动化任务。 shell的特点 跨平台&#xff1a…...

Debian12离线部署Mysql全网最详细教程

一、下载安装所需要的库 1、所需要的库 # 所需要的库有 libc6_2.36-9deb12u8_amd64.deb libgcc-s1_12.2.0-14_amd64.deb libstdc6_12.2.0-14_amd64.deb gcc-12-base_12.2.0-14_amd64.deb psmisc_23.6-1_amd64.deb libnuma1_2.0.18-1_amd64.deb libmecab2_0.996-14b14_amd64.d…...

文本生成视频技术:艺术与科学的交汇点

在人工智能技术的飞速发展下&#xff0c;文本生成视频&#xff08;Text-to-Video&#xff09;技术已经成为现实。这项技术能够根据文本描述生成相应的视频内容&#xff0c;极大地拓展了内容创作的边界。本文将从三个主要方面对文本生成视频技术进行深入探讨&#xff1a;技术能达…...

【Windows】【DevOps】Windows Server 2022 采用WinSW将一个控制台应用程序作为服务启动(方便)

下载WinSW 项目地址&#xff1a; GitHub - winsw/winsw: A wrapper executable that can run any executable as a Windows service, in a permissive license. 下载地址&#xff1a; https://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exe 参考配置模…...

OpenAI董事会主席Bret Taylor的Agent公司Sierra:专注于赋能下一代企业用户体验

本文由readlecture.cn转录总结。ReadLecture专注于音、视频转录与总结&#xff0c;2小时视频&#xff0c;5分钟阅读&#xff0c;加速内容学习与传播。 视频来源 youtube: https://www.youtube.com/watch?vriWB5nPNZEM&t47s 大纲 介绍 欢迎与介绍 介绍Bret Taylor&#x…...

【linux】信号(下)

8. 阻塞信号 (一)信号其他相关常见概念 实际执行信号的处理动作称为信号递达(Delivery)信号从产生到递达之间的状态,称为信号未决(Pending)进程可以选择阻塞 (Block )某个信号被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作(即被阻塞的信…...

Notepad++ 初学者指南

引言 对于初学者来说&#xff0c;选择合适的编程工具很重要&#xff0c;特别是考虑到易用性和计算机资源的需求。 虽然集成开发环境&#xff08;IDE&#xff09;如 Eclipse、IntelliJ IDEA 和 Visual Studio 提供了许多强大的功能&#xff0c;但对于刚开始学习编程的人来说&a…...

Web Socket 使用详解

在信息爆炸的时代&#xff0c;用户对网页的期待早已超越了静态内容的展示。实时聊天、股票报价、协同编辑等功能的实现&#xff0c;都离不开服务器与客户端之间持续、高效的数据交互。传统的HTTP请求-响应模型难以满足这种需求&#xff0c;而WebSocket的出现&#xff0c;为构建…...

【Python Web开发】Python Web开发知识全解析

Python Web开发知识全解析 Python 是一种强大的编程语言&#xff0c;以其简洁和高效而闻名&#xff0c;尤其在 Web 开发领域&#xff0c;它有着广泛的应用。Python 提供了许多功能强大且灵活的 Web 框架&#xff0c;如 Flask、Django、FastAPI 等&#xff0c;使得构建现代 Web…...

Android开发展开收起功能

Android开发展开收起功能 文字过长展开收起功能很普通&#xff0c;也很需要。 一、思路&#xff1a; 自定义控件MoreTextView 二、效果图&#xff1a; 三、关键代码&#xff1a; public class MoreTextView2 extends LinearLayout {/*** TextView的实际高度*/private int …...

Sealos Devbox 发布,珍爱生命,远离 CI/CD

水滴攻击太阳系用的是最原始的攻击方式&#xff1a;撞击&#xff01;却又如此有效率。 当我们搞了一堆容器、编排、CI/CD、DevOps&#xff0c;发明了一大堆没什么用的名词之后&#xff0c;最终发现这些操作都是花里胡哨&#xff0c;让开发者越陷越深。 最终你会发现一个真理&…...

数据结构——遍历二叉树

目录 什么是遍历二叉树 根据遍历序列确定二叉树 例题&#xff08;根据先序中序以及后序中序求二叉树&#xff09; 遍历的算法实现 先序遍历 中序遍历 后序遍历 遍历算法的分析 二叉树的层次遍历 二叉树遍历算法的应用 二叉树的建立 复制二叉树 计算二叉树深度 计算二…...

【Ubuntu】在Ubuntu上安装IDEA

【Ubuntu】在Ubuntu上安装IDEA 零、前言 最近换了Ubuntu系统&#xff0c;但是还得是要写代码&#xff0c;这样就不可避免地用到IDEA&#xff0c;接下来介绍一下如何在Ubuntu上安装IDEA。 壹、下载 这一步应该很容易的&#xff0c;直接打开IDEA的下载页面&#xff0c;点击下…...

解决:gpg: 从公钥服务器接收失败:服务器故障

当你添加密钥时报错&#xff0c;可以按照下面的步骤&#xff0c;依次输入。 # 停止 Network Manager 服务 sudo service network-manager stop# 删除 Network Manager 的状态文件 sudo rm /var/lib/NetworkManager/NetworkManager.state# 重新启动 Network Manager 服务 sudo …...

支持向量机SVM

目录 1 SVM直觉理解2. 软硬间隔3. 升维转换及核技巧入门 参考资料 1 SVM直觉理解 通过一条直线将两类数据分开&#xff0c;并且当有新的数据加入时&#xff0c;通过该条直线就能判别其属于哪一类 为了区分两类数据&#xff0c;N为数据的样本数&#xff0c;M为维度数&#xf…...

斯坦福UE4 C++课学习补充25:AI感知组件

文章目录 一、引入感知组件并绑定委托二、优化角色旋转 一、引入感知组件并绑定委托 PawnSensingComponent是UE中用于感知其他 Pawn&#xff08;或 Actor&#xff09;存在的一个组件&#xff0c;常用于 AI 角色的视觉、听觉等感知功能。它为 AI 提供了基础的感知能力&#xff…...

大模型 memory 记忆 缓存的应用

在探讨大模型的“memory”&#xff08;记忆&#xff09;功能时&#xff0c;我们通常会涉及缓存、存储以及如何有效管理和利用这些记忆来增强模型的性能。以下是对大模型memory记忆、缓存及相关概念的详细分析&#xff1a; 一、大模型的记忆功能 大模型&#xff0c;特别是大型…...

perl 给特定文件加上特定内容

perl 给特定文件加上特定内容 给所有的输入文件&#xff0c;加上特定的内容 本例中&#xff0c;给所有的输入文件内加入## Copyright xxx 如果检测到已经有## Copyright字样的行&#xff0c;那么不添加&#xff0c;具体代码如下。 可以使用该脚本&#xff0c;给所有的verilog文…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...