sar(System Activity Reporter)是一个强大的系统监控工具,可用于收集、报告和分析系统的活动数据。它可以帮助管理员了解系统的性能状况,包括 CPU 使用率、内存利用率、磁盘 I/O、网络活动等。
参数
选项 | 含义 |
---|---|
-B | 报告内存分页统计信息。分页是操作系统中管理内存的一种技术,该选项提供与内存分页相关的统计信息,如页错误、页交换等。 |
-b | 报告所有设备的I/O和传输统计信息,包括每秒传输次数(tps)、每秒读取和写入的数据量等。 |
-d | 报告各个块设备的磁盘I/O统计信息,包括每秒传输次数(tps)、每秒读取和写入的数据量、I/O请求的平均等待时间等。 |
-p | 打印设备名称,通常与-d选项一起使用,以显示块设备的名称。 |
-n | 报告网络统计信息,包括网络接口的数据传输速率、数据包传输次数等。 |
-r | 报告内存使用情况统计信息,包括内存的空闲量、已使用量、缓存量等。 |
-9 | 报告队列长度和负载平均值统计信息,可用于监视系统的负载情况。 |
-P | 报告CPU使用率信息,包括每个CPU核心的利用率等。 |
-f | 指定sar日志文件,用于指定要分析的sar日志文件的路径。 |
sar -d
sar命令输出的IO使用情况统计信息
参数 | 含义 | 单位 |
---|---|---|
时间 | 统计数据记录的时间,24小时制 | 无 |
设备 | 被监视的设备的名称 | 无 |
tps | 每秒完成的I/O操作次数 | 次/秒 |
rkB/s | 每秒从设备读取的数据量 | KB/s |
wkB/s | 每秒向设备写入的数据量 | KB/s |
areq-sz | 每个I/O请求的平均大小 | 扇区大小 |
aqu-sz | 平均I/O请求队列的长度 | 请求数 |
await | I/O请求的平均等待时间 | 时间(毫秒) |
svctm | 每个I/O请求的平均服务时间 | 时间(毫秒) |
%util | 设备的利用率 | 百分比 |
sar -p
sar命令输出的IO使用情况统计信息,通常与 -d参数组合使用
runq-sz | 运行队列长度(等待运行时间的任务数)。 | 个任务 |
---|---|---|
plist-sz | 任务列表中的任务数。 | 个任务 |
ldavg-1 | 最近一分钟的系统平均负载。计算方式为指定时间间隔内可运行或正在运行的任务(R状态)和不可中断睡眠状态的任务(D状态)的平均数。 | 无 |
ldavg-5 | 过去5分钟的系统平均负载。 | 无 |
ldavg-15 | 过去15分钟的系统平均负载。 | 无 |
blocked | 当前阻塞的任务数,等待I/O完成。 | 个任务 |
sar -n DEV
sar命令输出的网络使用情况统计信息
参数 | 含义 | 单位 |
---|---|---|
IFACE | 网络接口名称 | 无 |
rxpck/s | 每秒接收的数据包数 | 个/秒 |
txpck/s | 每秒发送的数据包数 | 个/秒 |
rxkB/s | 每秒接收的数据量,单位为KB | KB/秒 |
txkB/s | 每秒发送的数据量,单位为KB | KB/秒 |
rxcmp/s | 每秒接收的压缩数据包数 | 个/秒 |
txcmp/s | 每秒发送的压缩数据包数 | 个/秒 |
rxmcst/s | 每秒接收的多播数据包数 | 个/秒 |
%ifutil | 网络接口的利用率 | 百分比 |
sar -P ALL
sar命令输出的CPU使用情况统计信息
参数 | 含义 | 单位 |
---|---|---|
CPU | CPU的标识符,通常为’all’表示所有CPU | 无 |
%user | 用户空间CPU使用率 | 百分比 |
%nice | 低优先级用户空间CPU使用率 | 百分比 |
%system | 系统空间CPU使用率 | 百分比 |
%iowait | CPU等待I/O完成的时间所占比例 | 百分比 |
%steal | 虚拟化环境中,由于其他虚拟机运行而无法使用的CPU时间所占比例 | 百分比 |
%idle | CPU空闲时间所占比例 | 百分比 |
sar -r
sar命令输出的内存使用情况统计信息
参数 | 含义 | 单位 |
---|---|---|
kbmemfree | 空闲内存的大小 | KB |
kbavail | 可用内存的大小 | KB |
kbmemused | 已使用内存的大小 | KB |
%memused | 内存使用率 | 百分比 |
kbbuffers | 缓冲区使用的内存大小 | KB |
kbcached | 缓存使用的内存大小 | KB |
kbcommit | 预留的虚拟内存大小 | KB |
%commit | 虚拟内存使用率 | 百分比 |
kbactive | 活跃内存的大小,正在使用和经常访问的内存 | KB |
kbinact | 非活跃内存的大小,被使用但不经常访问的内存 | KB |
kbdirty | 脏页内存的大小,等待写入磁盘的内存 | KB |
实用例子
1. 取出读速最高的磁盘。
sar -dp | awk ‘{print $5,$3}’ | sort -un
这个命令将显示磁盘读取速度最高的设备。
2. 取任务列表中的任务数
sar -q | tail -n +3 | awk ‘{print $2}’| sort -un
这个命令将显示任务列表中的任务数。
3. 取网络接口的利用率
sar -n DEV | tail -n +2 | awk ‘{print $3,$4+$5}’ | sort -un | less
这个命令将显示网络接口的利用率。
这些示例展示了如何使用 sar
命令来获取系统性能和资源利用情况的实时数据。
自定义 systemd 定时器
自定义 systemd 定时器来运行系统活动记录工具
复制现有的定时器单元文件到系统目录cp /usr/lib/systemd/system/sysstat-collect.timer /etc/systemd/system/
编辑该定时器单元文件以定义定时器的行为:[Unit]
Description=Run system activity accounting tool every 01 minutes
[Timer]
OnCalendar=*:00/01
[Unit]
部分提供了定时器单元的描述信息。[Timer]
部分定义了定时器的执行计划。OnCalendar
选项指定了定时器触发的时间规则,此处表示每小时的第 01 分钟执行一次。
最后,配置定时器单元的安装信息:[Install]
WantedBy=sysstat.service
配置指定了在哪个服务(sysstat.service)启动时要启用该定时器。
完成上述配置后,需要重新加载 systemd 并重启定时器服务systemctl daemon-reload
systemctl restart sysstat-collect.timer
最后,使用以下命令启用定时器,使其在系统启动时自动启动:systemctl enable sysstat-collect.timer
对于 sysstat 工具而言,它的默认配置是将报告文件保存在 /var/log/sa/
目录下,文件名类似于 saDD
,其中 DD
是两位数字,代表当月的日期。因此,当定时器触发 sysstat 工具运行时,生成的报告文件将保存在 /var/log/sa/
目录下。
本文 使用 sar 监控资源利用情况 https://www.itwk.cc/post/1125.html 所涉及的软件均源自于网络。
不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
访问和下载本站内容,说明您已同意上述条款。
本站为非盈利性站点,VIP功能仅仅作为用户喜欢本站捐赠打赏功能,本站不贩卖软件,所有内容不作为商业行为。