vmstat是一个查看虚拟内存使用情况的工具。可以查看服务器使用情况、内存使用情况、虚拟内存交换、IO读写情况,可以查看整台机器的CPU、内存、IO情况。
默认情况下,vmstat命令需要安装sysstat软件包,其中包含vmstat程序。
这个常用该命令后面跟着两个数字参数。第一个参数是采样时间间隔(以秒为单位),第二个参数是采样数量。
默认参数:
vmstat[-a][-n][-t][-Sunit][delay[count]]
[-a]:显示活动和非活动内存
[-n]:仅在开头输入一次字段名称多次展示、采集信息时,输出更加人性化。
[-t]:在每条信息的末尾,表示信息采集的时间
[-Sunit]:以指定单位显示。参数为k、K、m、M,分别代表1000、1024、1000000、1048576字节。基本单位为K(1024字节)
[delay[count]]:delay为信息采集间隔,count为信息采集次数
vmstat[-s][-n][-Sunit]
[-s]:显示内存相关统计信息
vmstat[-m][-n][delay[count]]
[-m]:显示slabinfo。labinfo信息写入/proc/slabinfo文件。Slab是Linux的内存分配机制。
vmstat[-d][-n][delay[count]]
[-d]:显示相关磁盘的统计信息
注:这是-与p以下的差异以及统计信息的差异有关。-p为子分区。
vmstat[-pdiskpartition][-n][delay[count]][-pdiskpartition]:显示磁盘子分区的统计信息。这不像iostat信息那么有用。
vmstat[-f]
[-f]:自启动以来的分支数量注意:这里的分支必须是内核的fork()函数。从父进程分支返回新创建子进程的进程ID。
vmstat[-V]
[-V]:版本信息
是
复制代码
代码为:
root@192.168.22.54:~#vmstat210根据上面的例子,字段描述为:
Procs
r:表示:这是运行队列的进程数,即实际分配给CPU的进程数。由于服务器配置了8核CPU,所以这个值超过了这个数字。CPU较少和ID较小会导致CPU瓶颈。如果运行队列过大,说明CPU占用率很高。
b:等待io的进程数。
内存
swpd:虚拟内存使用量;单位KB
free:空闲内存
buff:用作缓冲区的内存大小,部分内存,不能通过交换移动的程序代码缓存。
cache:用作缓存、数据缓存、要移交给允许交换的交换的内存大小
si:每从磁盘到内存、磁盘到虚拟内存交换的交换页数第二如果Size(本例中)值读取的页数大于0,则表示物理内存不足或存在内存泄漏。
所以:交换的交换页数每秒从内存到磁盘写入磁盘的虚拟内存大小。如果该值大于0,则表示物理内存不足或存在内存泄漏。
bi:Blocksreceivedfromablockdevice(blocks/s)。。每秒从块设备接收的块数。读取块设备。
bo:块发送到块设备(块/秒)。每秒传输到块设备的块数,即写入块设备的块数。
System
in:每秒中断次数,包括时钟中断。
cs:每秒上下文切换次数:值越小越好。例如,每当您调用系统函数并切换线程时,您的代码都会进入内核空间并发生上下文切换。如果这种情况发生得太频繁,则大部分CPU将浪费在上下文切换上,从而使CPU完全未得到充分利用。
CPU(以百分比表示)
us:用户进程执行时间,用户CPU占用率、运算计算等
sy:系统进程执行时间、系统CPU使用率、硬盘读取、硬件活动等
id:空闲时间(包括IO延迟)
wa:IO延迟
上一篇:linux分析进程占用内存过高
下一篇:win10虚拟内存占用过高