Linux性能监控学习笔记

这是一篇读书笔记,读的是《LinuxPermormanceMonitoring》,oscon2009

营养价值并不大,只是做个记录而已。

Linux性能监控一般分为这几个方面:

1.CPU

2.Memory

3.IO

4.Network

这4个方面相互独立但又互影响。

性能监控常用工具:

*vmstat:全能

*mpstat:CPU

*sar:全能

*iostat:磁盘

*netstat:网络

*dstat:聚合

*iptraf:网络

*netperf:带宽

*ethtool:网络

*iperf:网络

*tcptrace:包分析

CPU

优先级:中断>内核进程>用户进程

上下文切换(ContextSwitches):CPU在各个进程间切换的过程。

运行队列(RunQueue):Linux通过一定的调度算法来运行各个进程,待运行的进程会存放在RunQueue里面,load的概念就是RunQueue的总长度加上正在运行的进程数。

CPU使用率:

*UserTime:用户空间的进程所使用的时间

*SystemTime:内核进程所使用的时间

*WaitIO:等待IO的时间

*Idle:空闲时间

一些判断标准:

*每个CPU核心的RunQueue不应该超过1~3

*CPU充分使用时,UserTime约占65%~70%,SystemTime约占30%~35%,Idle约占0%~5%

例子1:cs很多,Interupt不高,WaitTime较高,说明进程普遍在等待硬件响应

例子2:cs不多,Interupt较高,UserTime较高,说明某一个进程在等待硬件响应

Memory

内存以页(page)为单位,守护进程kswapd负责保证有空闲的内存可以用。

kswapd做如下的事:

*页没有被修改,则把它放到空闲内存链表中;

*页被修改,且对应于文件系统一个文件,则把它写入到磁盘;

*页被修改,但不对应于文件系统中的文件,则把它写到swap设备;

pdflush守护进程负责把脏页同步到磁盘

对于内存的使用,只要保证不要用到swap即可。

IO

进程运行时需要的文件,如果没有在内存缓存中,则引发MajorPageFault(MPF),此时内核从磁盘中读取文件,并且缓存在内存中,下次需要同样的内容,则引发MinorPageFault(MnPF),直接从内存中读取。

IO是计算机中最慢的部分。一般情况下,CPU的WaitTime较高,contextswitch明显多于interupt,说明系统的IO是瓶颈。

对于网络部分,主要是使用各种工具检测和设置网络参数。对于非局域网,网络环境非常复杂,需要具体分析。

相关推荐