AIX的vmstat命令详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AIX的vmstat命令详解(原创)
vmstat概述
vmstat 命令报告关于内核线程、虚拟内存、磁盘、陷阱和CPU 活动的统计信息。由vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。
Interval 参数指定每个报告之间的时间量(以秒计)。第一个报告包含系统启动后时间的统计信息。后续报告包含自从前一个报告起的时间间隔过程中所收集的统计信息。如果没有指定Interval 参数,vmstat 命令生成单个报告然后退出。Count 参数只能和Interval 参数一起指定。如果指定了Count 参数,其值决定生成的报告数目和相互间隔的秒数。如果Interval 参数被指定而没有Count 参数,则连续生成报告。Count 参数不允许为0。
内核为内核线程、调页和中断活动维护统计信息,vmstat 命令通过使用perfstat 内核扩展来对其进行访问。磁盘输入/输出统计信息由设备驱动程序维护。对于磁盘,利用活动时间和传送信息数量来确定平均传送速率。活动时间的百分数根据报告期间驱动器忙的时间量来计算。
vmstat命令输出详解
输出样例
#vmstat 1 2
System configuration: lcpu=8 mem=15360MB
kthr memory page faults cpu
----- ---------------------------- ---------------------- ------------ ----------------------------------------
r b avm fre re pi po fr sr cy in sy cs us sy id wa 1 0 1614482 971363 0 0 0 0 0 0 56 4997 2739 1 1 97 0
0 0 1614484 971361 0 0 0 0 0 0 23 4435 2677 1 1 97 0
Kthr
kernel thread state(内核线程状态,表示每秒钟在采样间隔时间上对各种队列的内核线程数求得的平均值) r: 取样期间可运行的内核线程的平均数,包括正在运行的线程和指准备运行但尚在等待运行的进程。
1.)如果在processes中运行的序列(process r)是连续的大于在系统中的CPU的个数表示系统现在运行比较慢,有多数的进程等待CPU。
2.)如果r的输出数大于系统中可用CPU个数的4倍的话,则系统面临着CPU短缺的问题,或者是CPU的速率过低,系统中有多数的进程在等待CPU,造成系统中进程运行过慢。
3.)如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us)系统则面临着CPU资源的短缺。
解决方法
当发生以上问题的时候请先调整应用程序对CPU的占用情况.使得应用程序能够更有效的使用CPU.同时可以考虑增加更多的CPU. 一般情况下,应用程序的问题会比较大一些.比如一些sql语句不合理等等都会造成这样的现象.
b:表示每秒VMM等待队列中的内核线程平均数(等待资源或I/O),这里参考值为2,大于2表示被阻塞列线程数目太多。
Memory
Memory包括了虚拟内存和实际内存的信息
avm: 活动的虚拟页面(Active virtual pages,以4k为单位),该值较高并不意味着性能不好。记住,虚拟内存的概念是提供给我们寻址大于实内存容量的能力(一些在RAM 内存中,而另一些在调页空间中)。但是如果虚拟内存远大于实内存,可能造成过度的页面调度,从而导致延时。如果avm小于RAM,那么当RAM 中填满文件页时就会引起调页空间的页面调度。这种情况下,调整minperm、maxperm 和maxclient 的值可以减少调页空间的页面调度量。
fre: 自由表(free list)的大小。真实内存的大部分被用作文件系统数据的缓存。因此,自由表(free list)的大小保持比较小并不稀奇。
Page
页面错误和分页活动的信息。此值为指定时间周期内每秒给定单位的平均值。
re 页面调度程序(Pager)输入输出列表(input/output)列表。
pi 表示每秒钟从Paging Space置换到内存的页数,调页空间是驻留在磁盘上的虚拟内存的一部分。当内存过量使用时,它用作溢出。调页空间由用于存储从实内存中窃取到的工作组页面的逻辑卷组成。当进程访问一个窃取页时,产生了一个缺页故障,这一页必须从调页空间读入内存。这里pi的参考值为5,大于5说明内存不足。
po 表示每秒钟从内存置换到Paging Space的页数,无论什么时候窃取工作存储器的一页,如果它仍未驻留在调页空间中或已被修改,那它会被写入调页空间。如果不被再次访问,它会留在页面调度设备中直到进程终止或放弃空间。如果包含在出故障页面中的后续地址引用导致缺页故障,那么这些页面将会由系统个别调进。当一个进程正常终止,任何分配给该进程的调页空间将被释放。如果这两列持续大于5,则系统的性能瓶颈很可能是内存不足,而导致交换频繁。
fr 表示每秒钟页面置换算法释放的页数。当VMM 页面替换例程扫描页面帧表(Page Frame Table,
PFT)时,它使用一些条件选取要窃取的页面以插入到可用内存帧的空闲列表中。
sr 表示每秒钟页面置换算法检查的页数,页面替换算法在可以窃取足够的页面以满足页面替换线程的需要之前可能不得不扫描许多页面帧。
cy 页面置换算法所使用的时钟周期。即表示每秒页面替换代码扫描了PFT 多少次。因为插入空闲列表可以不需要完全扫描PFT,并且因为所有的vmstat 字段报告为整数,这一字段通常为0。
Faults 故障列:样例时间周期中,每秒陷阱(Trap )和中断率的平均值。
in 设备中断次数,iostat命令输出更有参考意义。
sy 系统调用次数,通过明确的系统调用,用户进程可以使用资源。这些调用指示内核执行调用线程的操作,并在内核和该进程之间交换数据。因为工作负载和应用程序变化很大,不同的调用执行不同的功能,所以不可能定义每秒钟有多少系统调用才算太多。这里设置参考值为10000,超过10000,用户需要注意。cs 内核线程上下文交换Kernel thread context switches。即时间片用完后,再轮到时的上下文计算,如果太高,则要仔细观察
CPU
CPU 使用时间百分比细目分类
us 用户进程CPU占用,一个UNIX 进程可以在用户方式下执行,也可以在系统(内核)方式下执行。当在用户方式下时,进程在它自己的应用程序代码中执行,不需要内核资源来进行计算、管理内存或设置变量。
sy 系统进程CPU占用,这包括内核进程(kprocs)和其它需要访问内核资源的进程所消耗的CPU 资源。如果一个进程需要内核资源,它必须执行一个系统调用,并由此切换到系统方式从而使该资源可用。例如,对一个文件的读或写操作需要内核资源来打开文件、寻找特定的位置,以及读或写数据,除非使用内存映射文件。这里us + sy的参考值为80%,如果us+sy 大于80%说明可能存在CPU不足。
id 系统空闲CPU idle time
wa 表示IO等待时间,即系统等待未完成的disk/NFS I/O 请求期间的CPU 空闲时间,
如果us与sy之和持续超过90%时,CPU出现了瓶颈。
如果wa长期很高>50,则表示IO太忙,具体看是应用IO多,还是交换分页多,如果是后者,则显示内存不足;如果是前者,则应关注应用的IO性能状况,优化应用与磁盘设备
pc 消耗物理处理器的数目。只在使用共享处理器运行的分区显示(只在微分区环境中显示)
ec 消耗授权容量的百分比。只在使用共享处理器运行的分区显示(只在微分区环境中显示)
Active Memory Sharing 增加的新字段
mmode
如果分区以共享内存模式运行,就显示shared。到编写本文时,对于专用内存分区,不显示这个字段。mpsz
显示共享内存池的大小。
hpi
显示分区的系统管理程序页面换入数量。如果系统管理程序已经把引用的页面换出到磁盘,所以它们在真实内存中不存在,就会发生系统管理程序页面换入。如果在执行vmstat 命令时没有指定时间间隔,那么