1)sar(system activity reporter):可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、C PU效率 、内存使用状况、进程活动及IPC有关的活动等。
sar [参数] [时间间隔] [次数]
a)选项说明:
#-A:等价于 -bBcdqrRuvwWy -I SUM -I XALL -n ALL -P ALL
#-b:显示I/O和传送速率的统计信息
#-B:输出内存页面的统计信息
#-c:输出进程统计信息,每秒创建的进程数
#-d:输出每一个块设备的活动信息
#-i interval:指定间隔时长,单位为秒
#-p:显示友好设备名字,以方便查看,也可以和-d 和-n 参数结合使用,比如 -dp 或-np
#-q:输出进程队列长度和平均负载状态统计信息
#-r:输出内存和交换空间的统计信息
#-R:输出内存页面的统计信息
#-u:输出CPU使用情况的统计信息
#-v:输出inode、文件和其他内核表的统计信息
#-V:输出版本号信息
#-w:输出系统交换活动信息
#-W:输出系统交换的统计信息
#-n {DEV|EDEV|NFS|NFSD|SOCK|ALL}:分析输出网络设备状态统计信息
#-X {pid|SELF|ALL}:输出指定进程的子进程的统计信息
#-I {irq|SUM|ALL|XALL}:输出指定中断的统计信息
#-P {cpu|ALL}:输出指定 CPU 的统计信息
#-o filename:将输出信息保存到文件 filename
#-f filename:从文件 filename 读取数据信息。filename 是使用-o 选项时生成的文件。
#-s hh:mm:ss:指定输出统计数据的起始时间
#-e hh:mm:ss:指定输出统计数据的截至时间,默认为18:00:00
b)属性值说明:
%usr:CPU处在用户模式下的时间百分比。不包括花费在虚拟的处理器上的时间
%nice:通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例
%sys:CPU处在系统模式下的时间百分比
%idle:CPU空闲时间百分比
%iowait:CPU等待输入输出完成时间的百分比(如果过高,表示硬盘存在I/O瓶颈。)
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
%guest:处理虚拟处理器的时间百分比。Time spent running a virtual CPU for guest operating systems under the control of the Linux kernel.
%gnice:Time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel).
c)常见用法:
#追溯过去的统计数据,sar -f /var/log/sa/sa10
#查看CPU使用率,sar -u
#查看平均负载,sar -q
#查看内存使用状况,sar -r
#查看页面交换发生状况,sar -W
#怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
怀疑内存存在瓶颈,可用sar -B、sar -r 和 sar -W 等来查看
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看
2)iostat全称:i/o statistics(输入/输出统计)的缩写。通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。
iostat [参数] [时间间隔] [次数]
a)选项说明:
#-c:显示CPU使用情况
#-d:显示磁盘使用情况
#-g:显示一组设备的使用情况
#-h:可读性更好统计信息
#-j:显示持久的设备名字
#-k:以 KB 为单位显示
#-m:以 MB 为单位显示
#-N:根据device mapper也就是我们经常说的LVM来输出io信息
#-p [ device [,...] | ALL]:显示所有的块设备和所有的分区使用情况
#-T:需要与-g同时使用
#-t:输出时打印收集信息时刻的时间
#-V:显示版本信息
#-x:输出拓展统计信息
#-y:省略第一次的统计信息
#-z:统计期间如果设备没有变化,省略输出
b)disk属性值说明:
#rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
#wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
#r/s: 每秒完成的读 I/O 设备次数。即 rio/s
#w/s: 每秒完成的写 I/O 设备次数。即 wio/s
#rsec/s: 每秒读扇区数。即 rsect/s
#wsec/s: 每秒写扇区数。即 wsect/s
#rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
#wkB/s: 每秒写K字节数。是 wsect/s 的一半。
#avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
#avgqu-sz: 平均I/O队列长度。
#await: 平均每次设备I/O操作的等待时间 (毫秒)。
#svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
#%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比