Linux工具软件sar (System Activity Report)收集和报告系统活动信息

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