使用 sar 监控资源利用情况

sar(System Activity Reporter)是一个强大的系统监控工具,可用于收集、报告和分析系统的活动数据。它可以帮助管理员了解系统的性能状况,包括 CPU 使用率、内存利用率、磁盘 I/O、网络活动等。

img

参数

选项含义
-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请求队列的长度请求数
awaitI/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每秒接收的数据量,单位为KBKB/秒
txkB/s每秒发送的数据量,单位为KBKB/秒
rxcmp/s每秒接收的压缩数据包数个/秒
txcmp/s每秒发送的压缩数据包数个/秒
rxmcst/s每秒接收的多播数据包数个/秒
%ifutil网络接口的利用率百分比

sar -P ALL

sar命令输出的CPU使用情况统计信息

参数含义单位
CPUCPU的标识符,通常为’all’表示所有CPU
%user用户空间CPU使用率百分比
%nice低优先级用户空间CPU使用率百分比
%system系统空间CPU使用率百分比
%iowaitCPU等待I/O完成的时间所占比例百分比
%steal虚拟化环境中,由于其他虚拟机运行而无法使用的CPU时间所占比例百分比
%idleCPU空闲时间所占比例百分比

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/ 目录下。

原创文章,作者:geeklinux.cn,如若转载,请注明出处:https://www.geeklinux.cn/jsjc/linux/1125.html

(0)
geeklinux.cn的头像geeklinux.cn
上一篇 2024 年 2 月 28 日
下一篇 2024 年 3 月 1 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

评论列表(0条)