开发工具

Shell之 sar 指令

sar(System Activity Reporter)是 Linux 和类 Unix 系统中的一个系统监控工具,属于 sysstat 软件包的一部分。它用于收集、报告和保存系统活动信息,如 CPU 使用率、内存使用情况、I/O 统计、网络统计等。


sar 的基本用法

sar [选项] [间隔] [次数]

选项:用于指定要收集的信息类型,如 -u(CPU 使用率)、-r(内存使用情况)等。

间隔:指定收集数据的时间间隔(以秒为单位)。

次数:指定收集数据的次数。如果省略,sar 将持续收集数据直到手动停止。


常用选项

-u:显示 CPU 使用情况,包括用户态、系统态、空闲态等百分比。

-r:显示内存和交换空间的使用情况。

-b:显示 I/O 统计信息,如每秒传输的块数。

-d:显示块设备活动,如每秒的传输次数和平均传输时间。

-n:显示网络统计信息,可以指定 DEV(网络接口)、EDEV(网络接口错误)、NFS、NFSD、SOCK、ALL、IP、EIP、ICMP、EICMP、TCP、ETCP、UDP、EUDP 等关键字。

-q:显示运行队列长度和平均负载。

-A:汇总所有报告。


示例

1、显示 CPU 使用情况

sar -u 1 3

这将每隔 1 秒收集一次 CPU 使用情况,共收集 3 次。


2、显示内存和交换空间的使用情况

sar -r

这将显示当前的内存和交换空间使用情况。


3、显示块设备活动

sar -d 1 5

这将每隔 1 秒收集一次块设备活动信息,共收集 5 次。


4、显示网络接口统计信息

sar -n DEV 1

这将显示网络接口的实时统计信息。


注意事项

1、sar 命令需要超级用户权限,因为它访问的是系统级别的性能数据。

2、在使用 sar 收集数据时,请确保不会给系统带来额外的负载,特别是在生产环境中。

3、sar 收集的数据可以保存到文件中,以便日后分析。使用 -o 选项指定输出文件,例如 sar -u 1 60 -o cpu_usage.log。

4、sar 命令的输出可以通过管道传递给其他命令进行进一步处理,如 grep、awk 等。

sar 是一个功能强大的系统监控工具,通过合理使用其选项和参数,可以帮助系统管理员和用户深入了解系统的运行状态,从而进行性能调优和故障排查。