vmstat命令比较常用,对于分析linux系统性能很有帮助。
1、“vmstat -a -S m 1 5”
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free inact active si so bi bo in cs us sy id wa st 2 0 0 230 3034 27812 0 0 0 8 4331 3563 5 1 94 0 0 1 0 0 213 3035 27829 0 0 0 8 4375 3432 5 1 94 0 0
两个可选参数:"1"表示每秒测量和报告一次,即频率;"5"表示总共报告的次数;上述例子表示每秒测量一次、共测量5次(打印5条);如果未指定第二个参数,则会一直测量下去。"-a"表示展示额外信息(incat、active),"-S m"内存数据部分以“m”为单位(默认为kb)。
从结果中,可以看到,vmstat会打印有关内存、IO、CPU等信息,均为全局的;当我们需要从整体查看系统性能时,很有用。
1、procs(进程):
1)r:等待CPU的进程数;如果此值持续较高,说明CPU可能有瓶颈了。
2)b:处于(uninterruptible sleep)状态的进程(D状态),之所以将这种状态的进程数特别展示出来,因为“不可打断的休眠”进程,跟我们通常意义上的“假死”进程很像,主要发生在IO等待直到资源返回才能唤醒,它不支持外部的唤醒型号(比如 kill -9)。这种状态的进程出现(或者多)通常与磁盘、NFS等外设故障有关,如果太多的D状态进程可能潜在导致CPU load增高(CPU利用率可能不高,因为这种状态下进程不消耗CPU)。
2、Memory(默认单位kb):
1)swpd:总虚拟内存大小(swap cached)禁用swap时,此值通常为0。此值较大时,表明物理内存在一定程度上不足,导致了swap,可能需要扩容内存了。
2)free:空闲内存大小。(未分配、未使用)此值小,表示可供分配给进程(新)的空闲内存较少,但是并不表名实际可用内存也不足,这还需要关注cached内存部分。
3)buff:磁盘IO或者网络IO读写时所占用的缓冲区内存大小,此值通常不会太大,IO调用结束后即伴随回收,主要用途提高IO效率。
4)cache:缓存区内存大小。
5)inact:inactive memory,非活跃缓存的大小。在IO操作时(磁盘文件)数据的pages-in的数据(内核态)缓存起来可以被多个进程访问以提高效率。“非活跃”表示缓存数据在一定时间内未被访问,可以被清理。
6)active:active memory,活跃缓存的大小,正在(或者最近)被进程访问的也缓存数据大小;一段时间后如果未被访问,则会被迁移到inactive中。linux系统将使用LRU算法回收。此值大,不会有太大问题,其可以在进程需要内存是,按需回收;操作系统会尽可能多的使用cache来优化IO访问。(我们也可以使用指令回收cache)
3、Swap(如果swap开启)
1)si:从磁盘swap到内存中的数据大小。
2)so:从内存中swap到磁盘中的内存大小。如果开启了swap,且物理内存不足时,此值通常很大。
4、io(磁盘)
1)bi:块设备(block device)每秒接收的快数量,默认块大小为1kb,我们根据此值可以推算磁盘写入能力,如果并发的、持续的文件写操作,此值通常很大。(尚不能推断磁盘性能瓶颈)。
2)bo:块设备每秒发送的快数量。
5、System:
1)in:每秒中断次数(CPU),软 + 硬;对于异步网络IO、NIO(非阻塞多路复用)的应用系统,通常此值加高。如果异常的高(每秒数万次)并连带CPU利用率较高,需要考虑程序设计的问题。
2)cs:每秒上下文切换测试。此值过高且连带CPU利用率较高或者load较高时,需要排查;比如较高的网络并发、超出实际的线程池并发操作,都可能导致此值超高。
6、CPU(基于所有CPU时间占比计算):
1)us:用户进程所占CPU时间比。
2)sy:系统内核所占CPU时间比。
3)wa:同iowait。
4)st:虚拟机窃取时间。
"vmstat -d" 用于查看磁盘IO相关数据。
"vmstat -s" 用于查看有关详细的内存统计信息。
参考:
1、进程状态(D):http://blog.51cto.com/echo1937/1286437
2、https://www.thomas-krenn.com/en/wiki/Linux_Performance_Measurements_using_vmstat
相关推荐
AIX的vmstat命令详解,有图有真相。
vmstat命令详解
vmstat 命令详解
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都...
sar与vmstat命令简介 vmstat命令报告内核线程,虚拟内存、磁盘、陷阱、和CPU活动情况。 Kthr 线程活动情况 r 运行队列 b 等待队列
vmstat命令详解
linux vmstat命令详解和使用实例.docx
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都...
vmstat命令是常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix喜爱的命令,一个是Linux/Unix都支持...
vmstat命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。 语法格式:vmstat [参数] 常用参数: -a 显示活动内页 -f 显示启动后创建的...
vmstat命令,是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息。此命令的基本格式有如下 2 种: [root@localhost ~]# ...
Linux系统命令源码包,包含Top,Free,ps,kill等命令
vmstat是Virtual Meomory Statistics的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。iostat是I/O statistics的缩写,iostat工具将...
vmstat命令详细说明,用于系统监控和性能测试使用
AIX上的vmstat的报告输出解释和命令基本用法
VMSTAT 用法 。
vmstat详解.