本篇内容主要讲解“Linux中虚拟内存查看命令vmstat的过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux中虚拟内存查看命令vmstat的过程”吧!
vmstat是一个查看虚拟内存使用状况的工具,它可以看到服务器使用率,内存使用,虚拟内存交换情况,IO读写。相比,可以看到整个机器的CPU、内存、i/o的使用情况,而不是单单看到各个进程各值的使用率。
默认情况下,vmstat命令并没有安装,需要安装sysstat包,该包里含有vmstat程序。
一般经常使用的该命令后加2个数字参数,第一个参数是采样的时间间隔(秒),第二个参数是采样的次数。
<>强基本参数:强>
vmstat [-] [n] [t] [s单位][延迟[数]]
,
[a]:显示活跃和非活跃内存
,
[n]:只在开始时显示一次字段名,针对多次收集信息的情况输出人性化一点
,
[t]:在每条信息的末尾,显示收集信息的时间
,
[s单位]:使用指定单位显示。参数有k, k、m, m,分别代表1000,1024,1000000,1048576字节(字节)。默认单位为k(1024字节)
,
[延迟[数]]:延迟是信息收集间隔,计数是信息收集的次数
vmstat [s] [n] [s单位]
,
[s]:显示内存相关的统计信息
,
vmstat [m] [n][延迟[数]]
,
[m]:显示slabinfo, slabinfo信息记录在/proc/slabinfo文件中.slab是linux的一个内存分配机制。
,
vmstat [- d] [n][延迟[数]]
,
[d]:显示相关磁盘的统计信息,,
注:这个跟楼下- p的区别统计信息的不同,统计对象这个是磁盘- p是子分区,这个不能指定全部输出
vmstat (- p磁盘分区)[n][延迟[数]]
, (- p磁盘分区):显示磁盘子分区的统计信息,这里没有iostat的信息那么有用
vmstat [f]
, [f]:开机启动至今的叉数量,,,,,,,,,,,注:这里的叉应该是内核的fork()函数,在父进程中,叉返回新创建子进程的进程ID
, vmstat [v]
[v]:版本信息
<强>示例
强>
代码如下:
root@192.168.22.54: 10 ~ # vmstat 2
效果- - - - - - - - - - -记忆- - - - - - - - - - - -交换- - - - - - - io系统- - - - - - - - - - - - cpu - - - - - -
r, b,swpd,免费的,浅黄色,缓存,如果,所以,bi大敌;bo大敌;在,cs我们sy id佤邦圣
13, 0,,,0 542604 323512 12356052,0,0,0,,2,,0,0 17 18 65 0,0
42, 0,,,0 552500 323512 12356112,0,0,0,,0 18669 49903 42 45 14,0,0,
72, 0,,,0 563416 323512 12356132,0,0,0,,0 18394 49895 41 43 16,0,0,
73, 0,,,0 570924 323512 12356164,0,0,0,,37 41 22,19666 51678 0,0,13,
0,,,0 581208 323512 12356204,0,0,0,280 18990 49541 43 43 15,0,0,18,
0,,,0 587148 323512 12356228,0,0,0,,32 19360 49203 37 39 24 0,0,27个,
0,,,0 520016 323512 12356292,0,0,0,,0 20423 52865 39 40 21,0,0,18,
0,,,0 527512 323512 12356336,0,0,0,,0 19613 53052 42 43 16,0,0,23,
0,,,0 538608 323512 12356376,0,0,0,,0 18860 50645 41 42 18,0,0,
80, 0,,,0 548608 323512 12356444,0,0,0,,0 19781 50917 41 42 17,0,0,
根据以上实例,下面是字段说明:
效果(进程)
r:表示运行队列的进程数量,换句话说就是多少个进程真正分配到cpu。服务器配置cpu为8核,这里由于服务器运行了大量的程序在跑,当这个值超过了cpu数目,且id较小,就可能会出现cpu瓶颈。运行队列过大,表示cpu很繁忙,一般会造成cpu使用率过高。
b:等待io的进程数。
swpd记忆:虚拟内存使用情况,单位KB
免费的:空闲的内存
迷:用作缓冲的内存大小,内存中的一部分,某程序代码缓存,不可移到交换里去。
缓存:用作缓存的内存大小,数据缓存,允许交给交换交换
si:从磁盘交换到内存的交换页数量,每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露。
如此:从内存交换到磁盘的交换页数量,每秒虚拟内存写入磁盘的大小,如果这个值大于0,表示物理内存不够用或者内存泄露。
bi:块收到一个块设备(块/s)。每秒从块设备接收到的块数,即读块设备。
波:块送到一个块设备(块/s)。每秒发送到块设备的块数,即写块设备。
系统:每秒中断数,包括时钟中断。
cs:每秒上下文切换数。这个值越小越好。比如每次调用系统函数,线程的切换,代码就会进入内核空间,导致上下文切换,次数过多表示cpu大部分浪费在上下文切换,导致cpu没有充分利用。
cpu(以百分比表示)
:用户进程执行的时间,用户cpu使用率,操作运算等。
sy:系统进程执行的时间,系统cpu使用率,读取硬盘,操作硬件等。