分类:
2012-05-08 08:49:49
原文地址:Linux系统自带的性能监控工具 作者:kugong1119
sar可以用来监控系统的cpu, io, network, interupt, memeroy,以及进程cpu的信息。常用选项:
sar –u(cpu) –r(memeroy) –W(swap) –n(network) –I(interupt) –b(io) -d(device) 1(interval) 20(count)
实时的系统性能监控工具
可以动态查看系统的cpu, memeroy,以及各个进程的资源信息
3. iostat
iostat –x 1
cpu列中iowait是指cpu空闲而io队列非空的处理器时间比例
device中的util是指io队列非空的处理器时间比例。%util >= %iowait
device列中各行的具体含义:
rrqm/s wrqm/s 是每秒钟进行merge的读写次数,就是逻辑上的read和write次数
r/s w/s是merge后对物理设备的读写次数,是真正执行的read和write次数
rsec/s wsec/s是读写设备的扇区数,注意write操作可能也会需要读设备扇区,是真实的物理操作
rkB/s wkB/s是读写设备的K字节数。rkB/s = rsec/s / 2, wkB/s = wsec/s / 2
avgrq-sz是平均每次merge后的IO操作的数据扇区大小。
avgrq-sz = (rsec/s + wsec/s) / (r/s + w/s)
avgqu-sz是平均IO队列长度。可以反映系统IO负载,不能反映瞬间的IO洪水。
await是平均每次IO操作的耗时,包括在队列中的等待时间和真正的操作时间。
svctm是平均每次IO操作的真正操作耗时,svctm一般和磁盘的性能相关,cpu/内存等也会有间接影响;await主要由svctm和请求队列长度决定。svctm <= await
通过await和svctm的差值(即队列中等待时间)可以一定程度的反映IO洪水。因为IO洪水,导致IO请求等待时间很长,await和svctm的差值较大,这个时间点IO队列也长,而平均到统计周期中IO队列可能很短。
await = delta(ruse + wuse) / delta(io) //await 单位ms
delta(io) = r/s + w/s
每秒钟的平均队列长度 = 总等待时间ms / 1000
=> delta(ruse + wuse) = await * (r/s + w/s)
=> avgqu-sz = await * (r/s + w/s) / 1000
4. vmstat
vm类似于sar 但是不能监控网络信息,可以监控cpu,memeroy,中断,上下文切换等系统信息。可以看到有效内存和无效内存的信息,slab信息。不过可读性不好。
综上所述:观察cpu,memeroy信息使用top,io使用iostat,网络信息使用sar –n DEV。
中断等其他信息使用sar。vmstat只在分析虚拟内存细节时使用。监控时不仅仅使用一种方案,可以多种方案互相参考,比如io可以使用iostat –x 和sar –d 一起使用