都知道Linux系统使用sar会收集系统运行的各种数据,可以用sar分析过去一段时间CPU,内存,网络使用等情况,分析系统瓶颈,在分析线上故障或性能问题时非常有用,但是一直没有好好用过,基本连io分析都不会,今天做个笔记记录以下sar的使用。
概述
sar 命令用于收集,报告,或者保存Unix/Linux系统的活动信息,一般将这些信息保存在 /var/log/sa/
目录下,这些信息包括CPU使用率, 内存页面和使用率,网络IO和传输统计,进程创建活动,块设备活动和每秒中断计数等。
常说的sar来源于 sysstat 包,包括sar,sa1, sa2 三个工具。sar用户分析、显示 sa1 和 sa2 工具记录的日志。 sa2 工具每天在 /var/log/sa
目录下如一个报告,文件名以月份第N天命名。 sa1 工具将每天的系统活动信息以二进制数据写入到文件中。
配置
sysstat的配置文件在 /etc/sysconfig/sysstat
可以配置日至文件保存多少天,最长为一个月。各项配置在文件中都有说明。
常用命令
sar [option] [interval [count]] |
常用选项:
-A
所用,等价于-bBdFHqSuvwWy -I SUM -I ALL -m ALL -n ALL -r ALL -u ALL -P ALL
-B
报告换页(pagging)统计-b
报告IO和数据传输速率统计-d
报告每个块设备的活动-F [MOUNT]
显示当前挂载文件系统的统计,伪文件系统(pseudo-fs)会被忽略。-f [filename]
从指定文件获取信息,默认使用当前时间对应的文件--human
对大小数值使用易读的单位打印-P {cpu_list|ALL}
报告CPU统计,可以指定某个或某几个CPU。0是第一个CPU。-p
pretty print device name。-q
报告队列长度和平均负载-r
报告内存使用统计-S
报告swap空间使用统计-s [hh:mm[:ss]]
设置数据的开始时间,只有指定从文件读取数据时可用,时间使用24小时形式。默认开始时间时 08:00:00-e [hh:mm[:ss]]
设置结束时间-I {int_list|SUM|ALL}
统计中断信息,指定中断列表或打印统计信息或所有中断统计。-n {keyword [,...]|ALL}
显示网络统计,可用的keyword包括DEV, EDEV, FC, ICMP, EICMP, ICMP6, EICMP6, IP, EIP, IP6, EIP6, NFS, NFSD, SOCK, SOCK6, SOFT, TCP, ETCP, UDP and UDP6.
使用sar -n ALL 1
查看当前网络情况,每秒刷新一次。-t
使用用户本地时间显示记录-u [ALL]
报告CPU使用率统计-v
报告inode,文件和其它内核表的状态。-W
报告 swapping 统计-w
报告任务创建和系统切换活动-y
报告 TTY 设备活动
Ref: