sar命令
sar可以显示出文件的读写情况、系统调用的使用情况、磁盘I/O、CPU使用率、内存使用率、进程活动及IPC等
用法: sar [options] [-A] [-o file] t [n]
常用参数:
-A 列出所有的项目使用情况
-u 列出cpu的使用情况
-v 输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出内存和交换空间的统计信息
-b:显示I/O和传送速率的统计信息
-R:输出内存页面的统计信息
-w:输出系统交换活动信息
-s :指定历史数据开始时间
-e:指定历史数据结束时间
默认监控: sar 5 5 // CPU和IOWAIT统计状态
(1) sar -b 5 5 // IO传送速率
(2) sar -B 5 5 // 页交换速率
(3) sar -c 5 5 // 进程创建的速率
(4) sar -d 5 5 // 块设备的活跃信息
(5) sar -n DEV 5 5 // 网路设备的状态信息
(6) sar -n SOCK 5 5 // SOCK的使用情况
(7) sar -n ALL 5 5 // 所有的网络状态信息
(8) sar -P ALL 5 5 // 每颗CPU的使用状态信息和IOWAIT统计状态
(9) sar -q 5 5 // 队列的长度(等待运行的进程数)和负载的状态
(10) sar -r 5 5 // 内存和swap空间使用情况
(11) sar -R 5 5 // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12) sar -u 5 5 // CPU的使用情况和IOWAIT信息(同默认监控)
(13) sar -v 5 5 // inode, file and other kernel tablesd的状态信息
(14) sar -w 5 5 // 每秒上下文交换的数目
(15) sar -W 5 5 // SWAP交换的统计信息(监控状态同iostat 的si so)
(16) sar -x 2906 5 5 // 显示指定进程(2906)的统计信息,信息包括:进程造成的错误、用户级和系统级用户CPU的占用情况、运行在哪颗CPU上
(17) sar -y 5 5 // TTY设备的活动状态
(18) 将输出到文件(-o)和读取记录信息(-f)
使用:
1)查看cpu使用,每2s采集一次,连续采集8次
[root@mail services]# sar -u 2 8
Linux 2.6.18-194.el5 (mail.xywy.com) 07/22/15
14:24:50 CPU %user %nice %system %iowait %steal %idle
14:24:52 all 0.06 0.00 0.38 24.56 0.00 75.00
14:24:54 all 0.00 0.00 0.50 24.55 0.00 74.95
14:24:56 all 17.54 0.00 8.05 19.98 0.00 54.43
14:24:58 all 9.56 0.00 3.69 14.31 0.00 72.44
14:25:00 all 8.94 0.00 3.25 13.88 0.00 73.94
14:25:02 all 10.87 0.00 5.25 13.37 0.00 70.52
14:25:04 all 14.61 0.00 5.06 11.92 0.00 68.41
14:25:06 all 15.74 0.00 4.43 14.18 0.00 65.65
Average: all 9.67 0.00 3.83 17.09 0.00 69.42
输出项说明:
CPU:all 表示统计信息为所有 CPU 的平均值。
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。
1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。
如果要看单个CPU的话,可以使用-P参数
[root@CHN-DD-00-E4-01 vhosts]# sar -u -P ALL 1 1 ALL表示所有,可以用数字表示单个cpu
Linux 2.6.32-279.el6.x86_64 (CHN-DD-00-E4-01) 07/22/15 _x86_64_ (8 CPU)
15:15:55 CPU %user %nice %system %iowait %steal %idle
15:15:56 all 0.12 0.00 0.12 0.00 0.00 99.75
15:15:56 0 0.99 0.00 0.99 0.00 0.00 98.02
15:15:56 1 0.00 0.00 0.00 0.00 0.00 100.00
15:15:56 2 0.00 0.00 0.00 0.00 0.00 100.00
15:15:56 3 0.99 0.00 0.99 0.00 0.00 98.02
15:15:56 4 0.00 0.00 0.00 0.00 0.00 100.00
15:15:56 5 0.00 0.00 0.00 0.00 0.00 100.00
15:15:56 6 0.00 0.00 0.00 0.00 0.00 100.00
15:15:56 7 0.00 0.00 0.00 0.00 0.00 100.00
Average: CPU %user %nice %system %iowait %steal %idle
Average: all 0.12 0.00 0.12 0.00 0.00 99.75
Average: 0 0.99 0.00 0.99 0.00 0.00 98.02
Average: 1 0.00 0.00 0.00 0.00 0.00 100.00
Average: 2 0.00 0.00 0.00 0.00 0.00 100.00
Average: 3 0.99 0.00 0.99 0.00 0.00 98.02
Average: 4 0.00 0.00 0.00 0.00 0.00 100.00
Average: 5 0.00 0.00 0.00 0.00 0.00 100.00
Average: 6 0.00 0.00 0.00 0.00 0.00 100.00
Average: 7 0.00 0.00 0.00 0.00 0.00 100.00
2)查看负载
[root@yzyyyyyyyyyyyyyyyyyyy ~]# sar -q 1 5
Linux 2.6.32-279.el6.x86_64 (yzyyyyyyyyyyyyyyyyyyy) 07/22/15 _x86_64_ (8 CPU)
15:20:02 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
15:20:03 1 260 1.00 1.00 1.00
15:20:04 1 260 1.00 1.00 1.00
15:20:05 1 260 1.00 1.00 1.00
15:20:06 1 260 1.00 1.00 1.00
15:20:07 1 260 1.00 1.00 1.00
Average: 1 260 1.00 1.00 1.00
输出项解释:
runq-sz 运行队列的长度
plist-sz 进程的数量
ldavg-1 1分钟内的负载
ldavg-5 5分钟内的负载
ldavg-15 15分钟内的负载
3)查看磁盘I/O
[root@jjjjjjjjjj ~]# sar -b 1 5
Linux 2.6.32-279.el6.x86_64 (jjjjjjjjjj) 07/22/15 _x86_64_ (24 CPU)
15:35:48 tps rtps wtps bread/s bwrtn/s
15:35:49 0.00 0.00 0.00 0.00 0.00
15:35:50 4.00 0.00 4.00 0.00 88.00
15:35:51 0.00 0.00 0.00 0.00 0.00
15:35:52 0.00 0.00 0.00 0.00 0.00
15:35:53 0.00 0.00 0.00 0.00 0.00
Average: 0.80 0.00 0.80 0.00 17.60
输出项解释:
tps:每秒读物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.
rtps:每秒的读请求数
wtps:每秒的写请求数
bread/s:每秒读磁盘的数据块数(in blocks 1 block = 512B, 2.4以后内核)
bwrtn/s:每秒写磁盘的数据块数(in blocks 1 block = 512B, 2.4以后内核)
一般情况下tps=(rtps+wtps)
4)查看内存和swap空间使用
[root@yzyyyyyyyyyyyyyyyyyyy ~]# sar -r 1 5
Linux 2.6.32-279.el6.x86_64 (yzyyyyyyyyyyyyyyyyyyy) 07/22/15 _x86_64_ (8 CPU)
15:45:37 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
15:45:38 3731792 29131096 88.64 382956 27130444 224160 0.60
15:45:39 3731916 29130972 88.64 382956 27130444 224160 0.60
15:45:40 3729888 29133000 88.65 382956 27130444 226228 0.61
15:45:41 3729736 29133152 88.65 382956 27130452 226228 0.61
15:45:42 3729860 29133028 88.65 382956 27130452 226228 0.61
Average: 3730638 29132250 88.65 382956 27130447 225401 0.61
输出项解释:
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
5)查看网卡流量
[root@jjjjjjjjjj ~]# sar -n DEV 1 1
Linux 2.6.32-279.el6.x86_64 (jjjjjjjjjj) 07/23/15 _x86_64_ (24 CPU)
17:39:13 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
17:39:14 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:39:14 em1 8.00 2.00 0.64 0.30 0.00 0.00 2.00
17:39:14 em2 6.00 0.00 0.57 0.00 0.00 0.00 5.00
17:39:14 em3 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:39:14 em4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: em1 8.00 2.00 0.64 0.30 0.00 0.00 2.00
Average: em2 6.00 0.00 0.57 0.00 0.00 0.00 5.00
Average: em3 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: em4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
输出参数解释:
IFACE:网卡名字
rxpck/s:每秒钟接收到的包数目
txpck/s:每秒钟发送出去的包数目
rxbyt/s:每秒钟接收到的字节数
txbyt/s:每秒钟发送出去的字节数
rxcmp/s:每秒钟接收到的压缩包数目
txcmp/s:每秒钟发送出去的压缩包数目
txmcst/s:每秒钟接收到的多播包的包数目