sar(System Activity Report)是 sysstat 工具包中的核心工具之一,用于收集和报告系统活动信息,包括CPU利用率、内存使用、I/O活动、网络流量等。可以从历史数据中生成报告,帮助分析系统性能随时间的变化。
常用选项
(1) CPU 相关选项
-u:显示 CPU 利用率。
示例:
sar -u 1 3
每 1 秒采样一次,连续采样 3 次,报告 CPU 的用户态、系统态、空闲时间等利用率。
-P:指定处理器,显示单个或所有 CPU 核心的利用率。
示例:
sar -P ALL 1 5
每 1 秒采样一次,连续采样 5 次,显示每个 CPU 核心的利用率。
(2) 内存相关选项
-r:显示内存和交换分区的使用情况。
示例:
sar -r 1 3
每 1 秒采样一次,连续采样 3 次,报告内存的使用情况(包括空闲内存、已用内存、交换空间的使用情况等)。
(3) 网络相关选项
-n:显示网络活动信息。
-n DEV:显示每个网络接口的传输情况(发送/接收的数据包和字节数)。
示例:
sar -n DEV 1 3
每 1 秒采样一次,连续采样 3 次,报告各个网络接口的流量信息。
-n TCP:显示 TCP 连接的活动状态。
示例:
sar -n TCP 1 3
每 1 秒采样一次,连续采样 3 次,报告 TCP 连接的状态,例如主动连接、被动连接、错误等。
(4) I/O 相关选项
-b:显示块设备的 I/O 传输统计信息。
示例:
sar -b 1 3
每 1 秒采样一次,连续采样 3 次,报告块设备的传输率、读写次数等信息。
-d:显示具体块设备的 I/O 活动。
示例:
sar -d 1 3
每 1 秒采样一次,连续采样 3 次,报告每个块设备的 I/O 活动情况(包括读写次数、等待时间等)。
(5) 上下文切换和中断
-w:显示系统的上下文切换和进程创建的统计信息。
示例:
sar -w 1 3
每 1 秒采样一次,连续采样 3 次,报告每秒的上下文切换和进程创建情况。
-I:显示中断统计信息。
示例:
sar -I SUM 1 3
每 1 秒采样一次,连续采样 3 次,显示所有中断的总和。
(6) 文件系统相关选项
-v:显示文件句柄的使用情况。
示例:
sar -v 1 3
每 1 秒采样一次,连续采样 3 次,报告文件句柄、inode 和其他资源的使用情况。
(7) 历史数据查看
-f:从保存的日志文件中读取历史数据。
示例:
sar -u -f /var/log/sysstat/sa01
从日志文件 /var/log/sysstat/sa01 中读取 CPU 使用率数据,显示历史的 CPU 利用率。
常用场景
(1) 监控 CPU 使用情况
当系统变得响应缓慢或 CPU 负载过高时,你可以使用 sar -u 或 sar -P ALL 来监控 CPU 的使用情况,以确定 CPU 是否成为瓶颈,是否有特定的 CPU 核心超载。
sar -u 1 5
sar -P ALL 1 5
(2) 分析内存使用
如果系统内存耗尽或交换空间使用过高,导致性能下降,可以使用 sar -r 来检查物理内存和交换空间的使用情况,帮助分析是否需要增加内存或调整交换空间的大小。
sar -r 1 5
(3) 网络性能监控
在分析网络问题时,可以使用 sar -n DEV 来查看各个网络接口的数据包收发情况,帮助判断网络负载,排查网络瓶颈和接口故障。
sar -n DEV 1 5
(4) 磁盘 I/O 性能分析
如果磁盘 I/O 性能下降,可能影响系统整体响应时间。可以使用 sar -b 和 sar -d 查看系统的磁盘 I/O 活动,判断是否是磁盘瓶颈或特定设备读写过多。
sar -b 1 5
sar -d 1 5
(5) 上下文切换和中断监控
如果系统中断频繁或上下文切换过多,可能会影响系统性能。可以使用 sar -w 和 sar -I 监控上下文切换和中断次数,帮助确定这些问题是否是性能瓶颈的原因。
sar -w 1 5
sar -I SUM 1 5
(6) 历史数据分析
sar 可以保留系统性能的历史数据,方便管理员在问题出现后回顾过去的系统状态。通过 sar -f 可以读取过去的数据文件,分析系统在某一时段的性能情况。例如,分析1号的 CPU 使用历史记录: sar -u -f /var/log/sysstat/sa01