1、各种UNIX平台下vmstat与iostat输出结果详解各种UNIX平台下vmstat与iostat输出结果详解 作者: 日期: 各种UNIX平台下vmstat与iostat输出结果详解Linux下vmstat输出释疑: Vmstatprocs -memory- -swap- -io- -system- -cpu-r b swpd free buff cache si so bi bo in cs us sy id wa0 0 100152 2436 97200 289740 0 1 34 45 99 33 0 0 99 0swpd - 目前已使用的虛擬記憶(KB)free - 目前尚未被使用
2、的實體記憶體(KB)buff - 目前在暫存區用於讀/寫操作的實體記憶體(KB)cache - 目前對應程序位址空間的實體記憶體(KB)procsr 列表示运行和等待cpu时间片的进程数,如果长期大于CPU的数目,说明cpu不足,需要增加cpu。b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。cpu 表示cpu的使用状态us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于
3、80%说明可能存在CPU不足。wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。 id 列显示了cpu处在空闲状态的时间百分比 system 显示采集间隔内发生的中断数in 列表示在某一时间间隔中观测到的每秒设备中断数。cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。memoryswpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m
4、,只要si、so的值长期为0,系统性能还是正常 free 当前的空闲页面列表中内存数量(k表示) buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。 cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。 swapsi 由内存进入内存交换区数量。so由内存交换区进入内存数量。 IObi 从块设备读入数据的总量(读磁盘)(每秒kb)。bo 块设备写入数据的总量(写磁盘)(每秒kb)这里我们设置的bi+bo参考值为1000,如果超过1000,而
5、且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。Solairs系统下vmstat输出释疑vmstat 5 5procs memory page disk faults cpur b w swap free re mf pi po fr de sr s1 s1 - - in sy cs us sy id0 0 0 704968 207640 0 1 2 0 0 0 0 0 0 0 0 302 6 31 0 0 1000 0 0 705048 206728 1 2 0 0 0 0 0 0 0 0 0 302 4 34 0 0 1000 0 0 705048 206728 0 0
6、0 0 0 0 0 0 0 0 0 302 3 35 0 0 1000 0 0 705048 206728 0 0 0 0 0 0 0 0 0 0 0 301 3 34 0 0 1000 0 0 705048 206728 0 0 0 0 0 0 0 0 0 0 0 302 6 35 0 0 100procsr 列表示在运行队列中等待的进程数。b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。w 列表示可以进入运行队列但被交换出来的进程 cpu 表示cpu的使用状态us 列显示了用户方式下所花费 CPU 时间的百分比。一个 UNIX 进程可以在用户方式下执行,也可以在系统(内核
7、)方式下执行。当在用户方式下时,进程在它自己的应用程序代码中执行,不需要内核资源来进行计算、管理内存或设置变量。sy 列详述了 CPU 在系统方式下执行一个进程所花时间的百分比。这包括内核进程(kprocs)和其它需要访问内核资源的进程所消耗的 CPU 资源。如果一个进程需要内核资源,它必须执行一个系统调用,并由此切换到系统方式从而使该资源可用。例如,对一个文件的读或写操作需要内核资源来打开文 件、寻找特定的位置,以及读或写数据,除非使用内存映射文件。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。id 列显示了没有未决本地磁盘 I/O 时 CPU 空闲
8、或等待的时间百分比。 faults 显示采集间隔内发生的中断数in 列表示在某一时间间隔中观测到的每秒设备中断数。iostat命令输出更有参考意义。sy 列表示在某一时间间隔中观测到的每秒系统调用次数。通过明确的系统调用,用户进程可以使用资源。这些调用指示内核执行调用线程的操作,并在内核和该进程之 间交换数据。因为工作负载和应用程序变化很大,不同的调用执行不同的功能,所以不可能定义每秒钟有多少系统调用才算太多。这里设置参考值为10000,超 过10000,用户需要注意。cs 列表示,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。memoryswap 当前可用内存交换区
9、容量(k表示)。free 当前的空闲页面列表中内存数量(k表示) pagere 列表示回收的页面数。mf 列表示小级别错误计数。pi 列表示进入页面数 (k表示)。po 列表示出页面数(k表示)。fr 列表示空余的页面数(k表示)。de 列表示提前读入的页面中的未命中数。sr 列表示通过时钟算法扫描的页面计数 solairs下iostat释疑iostat -xtc 5 2extended device statistics tty cpudevice r/s w/s kr/s kw/s wait actv svc_t %w %b tin tout us sy wt idsd1 0.3 0.0
10、3.4 0.1 0.0 0.0 13.2 0 0 0 0 0 0 0 100sd15 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0nfs1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0extended device statistics tty cpudevice r/s w/s kr/s kw/s wait actv svc_t %w %b tin tout us sy wt idsd1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 77 0 0 0 100sd15 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0nfs
11、1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0tty和CPU使用率报告tin 显示了系统为所有 tty 读取的字符总数。tout 显示了系统为所有 tty 写入的字符总数。us 显示了在用户级应用程序在缺省的优先级别执行时的 CPU 使用率百分比。sy 显示了在用户级应用程序在降低优先级执行时的 CPU 使用率百分比。wt 显示了在系统级(内核)执行时生成的 CPU 使用率。id 显示了 CPU 空闲期间系统有未完成的磁盘 I/O 请求时的时间百分比。磁盘使用率报告device 被统计的硬盘设备名,包括nfs设备。r/s 表示每秒钟读的次数w/s 表示每秒钟写的次数kr/s
12、 表示每秒钟读的K字节数kw/s 表示每秒钟写的K字节数wait 表示平均多少个传输等待被处理,相当于读写等待队列长度 actv 表示平均多少个传输从读写等待队列中移出做处理 svc_t 表示每次硬盘传输平均耗费的时间,以毫秒为单位,这里我们设置的参考值为30ms,超过说明硬盘负载太多 %w 表示每次传输所消耗时间里面,等待所占的百分比 %b 表示硬盘忙的时间所占百分比,这里我们设置参考值为5%,超过5%说明硬盘负载太多,最好采取以下步骤:1.)调整应用,令其使用磁盘i/o更加有效率,可以通过修改磁盘队列、使用应用服务器的cache 2.)将文件系统分布到2个或多个磁盘上,并使用volume
13、manager/disksuite的条带化特点 3.) 增加系统参数值,如inode cache , ufs_ninode。AIX下vmstat释疑:# vmstat 5 20kthr memory page faults cpu- - - - -r b avm fre re pi po fr sr cy in sy cs us sy id wa1 1 244528 1227 0 3 3 56 151 0 404 1420 1415 4 2 88 62 6 244538 1241 0 39 148 2424 3511 0 904 4660 7571 49 12 2 385 3 244540 7
14、91 0 2 221 3937 6077 0 1183 6605 24619 44 34 1 211 7 245326 1009 0 11 331 1071 1934 0 884 3788 13000 23 25 0 52分析如下:kthrkthr列表示每秒钟在采样间隔时间上对各种队列中的内核线程数求得的平均值r 列表示可运行的内核线程平均数,包括正在运行的线程和正在等待 CPU的线程。如果这个数字大于 CPU 的数目,至少有一个线程要等待 CPU,等待 CPU 的线程越多,越有可能对性能产生影响。b 列表示每秒 VMM 等待队列中的内核线程平均数。这包括正在等待文件系统 I/O 的线程,或由
15、于内存装入控制而暂挂的线程。这里参考值为2,大于2表示被阻塞列线程数目太多。 b !阻塞线程数目太多CPUus 列显示了用户方式下所花费 CPU 时间的百分比。一个 UNIX 进程可以在用户方式下执行,也可以在系统(内核)方式下执行。当在用户方式下时,进程在它自己的应用程序代码中执行,不需要内核资源来进行计算、管理内存或设置变量。sy 列详述了 CPU 在系统方式下执行一个进程所花时间的百分比。这包括内核进程(kprocs)和其它需要访问内核资源的进程所消耗的 CPU 资源。如果一个进程需要内核资源,它必须执行一个系统调用,并由此切换到系统方式从而使该资源可用。例如,对一个文件的读或写操作需要内核资源来打开文 件、寻找特定的位置,以及读或写数据,除非使用内存映射文件。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1