vmstat:报告关于内核进程,虚拟内存,磁盘,cpu的的活动状态的工具
主要有几个用法:
1.vmstat 间隔 测试数量
输出如下
kthr memory page faults cpu
—– ———– ———————— ———— ———–
r b avm fre re pi po fr sr cy in sy cs us sy id wa
0 0 26258 18280 0 0 0 7 20 0 127 227 64 1 2 96 1
其中:
kthr–内核进程的状态
–r 运行队列中的进程数,在一个稳定的工作量下,应该少于5
–b 等待队列中的进程数(等待I/O),通常情况下是接近0的.
memory–虚拟和真实内存的使用信息
–avm 活动虚拟页面,在进程运行中分配到工作段的页面空间数.
–fre 空闲列表的数量.一般不少于120,当fre少于120时,系统开始自动的kill进程去释放
free list
page–页面活动的信息
–re 页面i/o的列表
–pi 从页面输入的页(一般不大于5)
–po 输出到页面的页
–fr 空闲的页面数(可替换的页面数)
–sr 通过页面置换算法搜索到的页面数
–cy 页面置换算法的时钟频率
faults–在取样间隔中的陷阱及中断数
–in 设备中断
–sy 系统调用中断
–cs 内核进程前后交换中断
cpu–cpu的使用率
–us 用户进程的时间
–sy 系统进程的时间
–id cpu空闲的时间
–wa 等待i/o的时间
一般us+sy 在单用户系统中不大于90,在多用户系统中不大于80.
wa时间一般不大于40.
aix CPU 性能监视
CPU 性能监视
处理单元是系统中最快的组件之一。在某一时间对单个程序来说保持 100% 的 CPU 占用率(也就是说,空闲 0%,等待 0%)超过几秒钟是相对少见的。甚至在重负载的多用户系统中,偶尔会出现一些 10 毫秒(ms)的时间段,在其结束时所有线程处于等待状态。如果监视器长时间地显示 CPU 占用率为 100%,则很有可能是某个程序陷入了死循环。即使程序“仅仅”是占用较多资源而不是崩溃了,也需要将它识别出来并进行处理。
vmstat 命令(CPU)
第一个要使用的工具是 vmstat 命令,该命令vmstat
# vmstat
System configuration: lcpu=8 mem=15936MB
kthr memory page faults cpu
—– ———– ———————— ———— ———–
r b avm fre re pi po fr sr cy in sy cs us sy id wa
1 1 894941 601322 0 0 0 2 3 0 15 862 286 0 0 99 1
avm Active virtual pages
avm定义为the number of virtual-memory working segment pages that have actually been touched. 此值可能会比实际物理内存的frame要大,因为一些active virtual memory可能会被写入到paging space中. 表示的是当前进程使用的stack,变量,共享内存段等类型的内存,但是不包括进程可能打开的文件所占用的内存.
fre Size of the free list
fre物理内存实际剩余的page数目
pi Pages paged in from paging space
po Pages paged out to paging space
正常情况下pi和po不应该持续为非0值;
fr Pages freed (page replacement).
sr Pages scanned by page-replacement algorithm
正常情况下fr和sr基本一致;
r Average number of runnable kernel threads over the sampling interval. Runnable refers to threads that are ready but waiting to run and to those threads already running.
正常情况下一般r<5
b Average number of kernel threads placed in the VMM wait queue (awaiting resource, awaiting input/output) over the sampling interval.
wa CPU idle time during which the system had outstanding disk/NFS I/O request(s). See detailed description above.
b和wa正常的情况下都不大,高的wa(I/O wait)和高的b(在队列中等待的线程数目)有可能是paging in和out导致的.
工程经验
avm可以作为长期监控系统内存使用率的趋势分析,如果你有监控软件, 长时间监控avm可以给你很好的内存使用的趋势. 虽然它不代表实际系统用了多少内存,但是作为趋势判断还是非常有效的.
判断内存是否缺少内存的一个工程依据: fre少于minfree并且有持续的page in和page out出现.
其它的值:fr,sr,r,b,wa可以作为一些参考的值.
# vmstat -s
531921073 total address trans. faults
298718704 page ins
66764084 page outs
0 paging space page ins
0 paging space page outs
0 total reclaims
207574145 zero filled pages faults
32015 executable filled pages faults
53623328 pages examined by clock
28 revolutions of the clock hand
33577399 pages freed by the clock
11549684 backtracks
5631 free frame waits
0 extend XPT waits
5033034 pending I/O waits
365484303 start I/Os
10744732 iodones
4779271208 cpu context switches
249867457 device interrupts
870241057 software interrupts
3789663540 decrementer interrupts
990224 mpc-sent interrupts
990224 mpc-receive interrupts
2787163 phantom interrupts
0 traps
14370171283 syscalls
page ins
Incremented for each page read in by the virtual memory manager. The count is incremented for page ins from page space and file space. Along with the page out statistic, this represents the total amount of real I/O initiated by the virtual memory manager.
page outs
Incremented for each page written out by the virtual memory manager. The count is incremented for page outs to page space and for page outs to file space. Along with the page in statistic, this represents the total amount of real I/O initiated by the virtual memory manager.
paging space page ins
Incremented for VMM initiated page ins from paging space only.
paging space page outs
Incremented for VMM initiated page outs to paging space only.
工程经验
作为page ins, page outs, paging space page ins和paging space page outs,应该不会有大量的增长.
# vmstat -v
4079616 memory pages
3870685 lruable pages
600851 free pages
2 memory pools
536705 pinned pages
80.0 maxpin percentage
20.0 minperm percentage
80.0 maxperm percentage
66.2 numperm percentage
2566023 file pages
0.0 compressed percentage
0 compressed pages
66.7 numclient percentage
80.0 maxclient percentage
2583370 client pages
0 remote pageouts scheduled
28819