都知道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。-ppretty 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: