各种UNIX平台下vmstat与iostat输出结果详解.docx
《各种UNIX平台下vmstat与iostat输出结果详解.docx》由会员分享,可在线阅读,更多相关《各种UNIX平台下vmstat与iostat输出结果详解.docx(12页珍藏版)》请在冰豆网上搜索。
![各种UNIX平台下vmstat与iostat输出结果详解.docx](https://file1.bdocx.com/fileroot1/2022-11/18/c5676f35-69c6-4dbc-be19-682b793e5cf6/c5676f35-69c6-4dbc-be19-682b793e5cf61.gif)
各种UNIX平台下vmstat与iostat输出结果详解
各种UNIX平台下vmstat与iostat输出结果详解
————————————————————————————————作者:
————————————————————————————————日期:
各种UNIX平台下vmstat与iostat输出结果详解
Linux下vmstat输出释疑:
Vmstat
procs-----------memory-------------swap-------io------system------cpu----
rbswpdfreebuffcachesisobiboincsussyidwa
00100152243697200289740013445993300990
swpd-目前已使用的虛擬記憶(KB)
free-目前尚未被使用的實體記憶體(KB)
buff-目前在暫存區用於讀/寫操作的實體記憶體(KB)
cache-目前對應程序位址空間的實體記憶體(KB)
procs
r列表示运行和等待cpu时间片的进程数,如果长期大于CPU的数目,说明cpu不足,需要增加cpu。
b列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
cpu表示cpu的使用状态
us列显示了用户方式下所花费CPU时间的百分比。
us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
sy列显示了内核进程所花费的cpu时间的百分比。
这里us+sy的参考值为80%,如果us+sy大于80%说明可能存在CPU不足。
wa列显示了IO等待所占用的CPU时间的百分比。
这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
id列显示了cpu处在空闲状态的时间百分比
system显示采集间隔内发生的中断数
in列表示在某一时间间隔中观测到的每秒设备中断数。
cs列表示每秒产生的上下文切换次数,如当cs比磁盘I/O和网络信息包速率高得多,都应进行进一步调查。
memory
swpd切换到内存交换区的内存数量(k表示)。
如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
free当前的空闲页面列表中内存数量(k表示)
buff作为buffercache的内存数量,一般对块设备的读写才需要缓冲。
cache:
作为pagecache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。
swap
si由内存进入内存交换区数量。
so由内存交换区进入内存数量。
IO
bi从块设备读入数据的总量(读磁盘)(每秒kb)。
bo块设备写入数据的总量(写磁盘)(每秒kb)
这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。
Solairs系统下vmstat输出释疑
vmstat55
procsmemorypagediskfaultscpu
rbwswapfreeremfpipofrdesrs1s1----insycsussyid
0007049682076400120000000030263100100
0007050482067281200000000030243400100
0007050482067280000000000030233500100
0007050482067280000000000030133400100
0007050482067280000000000030263500100
procs
r列表示在运行队列中等待的进程数。
b列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
w列表示可以进入运行队列但被交换出来的进程
cpu表示cpu的使用状态
us列显示了用户方式下所花费CPU时间的百分比。
一个UNIX进程可以在用户方式下执行,也可以在系统(内核)方式下执行。
当在用户方式下时,进程在它自己的应用程序代码中执行,不需要内核资源来进行计算、管理内存或设置变量。
sy列详述了CPU在系统方式下执行一个进程所花时间的百分比。
这包括内核进程(kprocs)和其它需要访问内核资源的进程所消耗的CPU资源。
如果一个进程需要内核资源,它必须执行一个系统调用,并由此切换到系统方式从而使该资源可用。
例如,对一个文件的读或写操作需要内核资源来打开文件、寻找特定的位置,以及读或写数据,除非使用内存映射文件。
这里us+sy的参考值为80%,如果us+sy大于80%说明可能存在CPU不足。
id列显示了没有未决本地磁盘I/O时CPU空闲或等待的时间百分比。
faults显示采集间隔内发生的中断数
in列表示在某一时间间隔中观测到的每秒设备中断数。
iostat命令输出更有参考意义。
sy列表示在某一时间间隔中观测到的每秒系统调用次数。
通过明确的系统调用,用户进程可以使用资源。
这些调用指示内核执行调用线程的操作,并在内核和该进程之间交换数据。
因为工作负载和应用程序变化很大,不同的调用执行不同的功能,所以不可能定义每秒钟有多少系统调用才算太多。
这里设置参考值为10000,超过10000,用户需要注意。
cs列表示,如当cs比磁盘I/O和网络信息包速率高得多,都应进行进一步调查。
memory
swap当前可用内存交换区容量(k表示)。
free当前的空闲页面列表中内存数量(k表示)
page
re列表示回收的页面数。
mf列表示小级别错误计数。
pi列表示进入页面数(k表示)。
po列表示出页面数(k表示)。
fr列表示空余的页面数(k表示)。
de列表示提前读入的页面中的未命中数。
sr列表示通过时钟算法扫描的页面计数
solairs下iostat释疑
iostat-xtc52
extendeddevicestatisticsttycpu
devicer/sw/skr/skw/swaitactvsvc_t%w%btintoutussywtid
sd10.30.03.40.10.00.013.20000000100
sd150.00.00.00.00.00.00.000
nfs10.00.00.00.00.00.00.000
extendeddevicestatisticsttycpu
devicer/sw/skr/skw/swaitactvsvc_t%w%btintoutussywtid
sd10.00.00.00.00.00.00.000077000100
sd150.00.00.00.00.00.00.000
nfs10.00.00.00.00.00.00.000
tty和CPU使用率报告
tin显示了系统为所有tty读取的字符总数。
tout显示了系统为所有tty写入的字符总数。
us显示了在用户级应用程序在缺省的优先级别执行时的CPU使用率百分比。
sy显示了在用户级应用程序在降低优先级执行时的CPU使用率百分比。
wt显示了在系统级(内核)执行时生成的CPU使用率。
id显示了CPU空闲期间系统有未完成的磁盘I/O请求时的时间百分比。
磁盘使用率报告
device被统计的硬盘设备名,包括nfs设备。
r/s表示每秒钟读的次数
w/s表示每秒钟写的次数
kr/s表示每秒钟读的K字节数
kw/s表示每秒钟写的K字节数
wait表示平均多少个传输等待被处理,相当于读写等待队列长度
actv表示平均多少个传输从读写等待队列中移出做处理
svc_t表示每次硬盘传输平均耗费的时间,以毫秒为单位,这里我们设置的参考值为30ms,超过说明硬盘负载太多
%w表示每次传输所消耗时间里面,等待所占的百分比
%b表示硬盘忙的时间所占百分比,这里我们设置参考值为5%,超过5%说明硬盘负载太多,最好采取以下步骤:
1.)调整应用,令其使用磁盘i/o更加有效率,可以通过修改磁盘队列、使用应用服务器的cache
2.)将文件系统分布到2个或多个磁盘上,并使用volumemanager/disksuite的条带化特点
3.)增加系统参数值,如inodecache,ufs_ninode。
AIX下vmstat释疑:
#vmstat520
kthrmemorypagefaultscpu
---------------------------------------------------------------
rbavmfrerepipofrsrcyinsycsussyidwa
1124452812270335615104041420141542886
262445381241039148242435110904466075714912238
532445407910222139376077011836605246194434121
1724532610090113311071193408843788130002325052
分析如下:
kthr
kthr列表示每秒钟在采样间隔时间上对各种队列中的内核线程数求得的平均值
r列表示可运行的内核线程平均数,包括正在运行的线程和正在等待CPU的线程。
如果这个数字大于CPU的数目,至少有一个线程要等待CPU,等待CPU的线程越多,越有可能对性能产生影响。
b列表示每秒VMM等待队列中的内核线程平均数。
这包括正在等待文件系统I/O的线程,或由于内存装入控制而暂挂的线程。
这里参考值为2,大于2表示被阻塞列线程数目太多。
[b]!
阻塞线程数目太多
CPU
us列显示了用户方式下所花费CPU时间的百分比。
一个UNIX进程可以在用户方式下执行,也可以在系统(内核)方式下执行。
当在用户方式下时,进程在它自己的应用程序代码中执行,不需要内核资源来进行计算、管理内存或设置变量。
sy列详述了CPU在系统方式下执行一个进程所花时间的百分比。
这包括内核进程(kprocs)和其它需要访问内核资源的进程所消耗的CPU资源。
如果一个进程需要内核资源,它必须执行一个系统调用,并由此切换到系统方式从而使该资源可用。
例如,对一个文件的读或写操作需要内核资源来打开文件、寻找特定的位置,以及读或写数据,除非使用内存映射文件。
这里us+sy的参考值为80%,如果us+sy大于80%说明可能存在CPU