sar(System Activity Reporter,系统活动情况报告)是Linux上一个非常全面的系统性能分析工具,它可以从多个方面对系统的活动进行报告,包括但不限于CPU使用情况、内存状态、磁盘I/O、网络状态等。以下是sar命令的一些常用参数及其简要说明:
常用参数
- -A:显示所有报告的总和。
- -u:显示CPU使用情况的统计信息,包括用户模式、系统模式、空闲时间等百分比。
- -v:显示inode、文件和其他内核表的统计信息。
- -d:显示磁盘I/O的统计信息,包括每秒钟的读写请求数、传输的数据量等。
- -r:显示内存和交换空间的统计信息,如空闲内存、已用内存等。
- -b:显示I/O和传送速率的统计信息,如缓冲区使用情况。
- -a:报告文件读写情况。
- -c:显示进程统计信息,如每秒创建的进程数。
- -R:显示内存页面的统计信息,如内存页面的换入换出情况。
- -y:显示终端设备活动情况。
- -w:显示系统交换活动信息,如每秒换入换出的交换页面数。
- -n:显示网络运行状态。参数后面可以跟DEV、EDEV、SOCK和FULL,分别显示网络接口信息、网络错误的统计数据、套接字信息和前三者所有信息。
- -q:显示运行队列的大小和平均负载,与系统当时的平均负载相同。
- -B:显示内存分页情况,如每秒从磁盘或SWAP置换到内存的字节数等。
- -p:显示当前系统中指定CPU的使用信息。
- -o file:将命令结果以二进制格式存放在文件中,file是文件名。
使用示例
- 每隔2秒输出一次CPU使用情况,共输出3次:
sar -u 2 3
- 监控内存使用情况,并将结果保存到文件中:
sar -r -o memory_report 10 5
- 查看网络接口的统计信息:
sar -n DEV 1
性能分析
要判断系统瓶颈问题,通常需要结合多个sar命令选项的输出来进行分析。例如:
- 怀疑CPU存在瓶颈时,可使用
sar -u
和sar -q
来查看CPU使用情况和平均负载。 - 怀疑内存存在瓶颈时,可使用
sar -r
、sar -B
和sar -W
来查看内存使用、内存分页和系统交换活动情况。 - 怀疑I/O存在瓶颈时,可使用
sar -b
、sar -u
和sar -d
来查看I/O和传送速率、CPU使用情况和磁盘I/O情况。
请注意,sar命令的参数和功能可能会随着Linux发行版和sysstat工具包的更新而有所变化。因此,建议查阅最新的官方文档或手册页(通过man sar
命令)来获取最准确和最新的信息。
sar -A -o satest 1 60