189 8069 5689

Linux命令中vmstat怎么用

这篇文章将为大家详细讲解有关Linux命令中vmstat怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

10年的兴山网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整兴山建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“兴山网站设计”,“兴山网站推广”以来,每个客户项目都认真落实执行。

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写, 是实时系统监控工具;用来获得有关进程、虚存、页面交换空间及 CPU活动的信息。这些信息反映了系统的负载情况;这个命令Linux/Unix都支持,而且相比top,通过该命令可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。

1、命令格式

vmstat [-a] [-n] [-S unit] [delay [ count]]

       vmstat [-s] [-n] [-S unit]

       vmstat [-m] [-n] [delay [ count]]

       vmstat [-d] [-n] [delay [ count]]

       vmstat [-p disk partition] [-n] [delay [ count]]

       vmstat [-f]

       vmstat [-V]

2、命令参数

-a:显示活跃和非活跃内存

-f:显示从系统启动至今的fork数量 。

-m:显示slabinfo

-n:只在开始时显示一次各字段名称。

-s:显示内存相关统计信息及多种系统活动数量。

delay:刷新时间间隔。如果不指定,只显示一条结果。

count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

-d:显示磁盘相关统计信息。

-p:显示指定磁盘分区统计信息

-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

-V:显示vmstat版本信息。

3、使用示例

[root@seaing ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 15700892 181712 385304    0    0     4    11   30   26  0  0 100  0  0

[root@seaing ~]# vmstat -a
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 15700892 272456 344768    0    0     4    11   30   26  0  0 100  0  0

--每2秒采集一次服务器状态,共采集6次

[root@seaing ~]# vmstat 2 6
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 15701016 181712 385308    0    0     4    11   32   26  0  0 100  0  0
 0  0      0 15701016 181712 385308    0    0     0     0 1015   72  0  0 100  0  0
 0  0      0 15701016 181712 385308    0    0     0     0 1016   71  0  0 100  0  0
 0  0      0 15701016 181712 385308    0    0     0    14 1016   76  0  0 100  0  0
 0  0      0 15701008 181712 385308    0    0     0     0 1014   73  0  0 100  0  0
 0  0      0 15701008 181712 385308    0    0     0     0 1019   70  0  0 100  0  0

说明:

类别

项目

含义

说明

Procs(进程)

r

等待执行的任务数

展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。

这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。

B

等待IO的进程数量

 也可以理解为阻塞的进程数

Memory(内存)

swpd

正在使用虚拟的内存大小,单位k

 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。

free

空闲物理内存的大小

 

buff

已用的buff大小,对块设备的读写进行缓冲

 

cache

已用的cache大小,文件系统的cache

 cache直接用来记忆我们打开的文件,给文件做缓冲 (这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

Swap

si

每秒从磁盘读入虚拟内存的大小(单位:kb/s)

 如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。

so

每秒虚拟内存写入磁盘的大小

 如果这个值大于0,同上

IO

bi

每秒读取的块数(读磁盘)

这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte

bo

每秒写入的块数(写磁盘)

 例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

system

in

每秒CPU的中断数,包括时钟中断

这两个值越大,会看到由内核消耗的cpu时间会越多

上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。

cs

每秒上下文切换数

CPU(以百分比表示)

us

用户进程执行消耗cpu时间(user time)

us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了

sy

系统进程消耗cpu时间(system time)

sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因。

id

空闲时间(包括IO等待时间)

 一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

wa

等待IO时间

wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。

--显示磁盘相关统计信息

[root@seaing ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
ram0       0      0       0       0      0      0       0       0      0      0
ram1       0      0       0       0      0      0       0       0      0      0
ram2       0      0       0       0      0      0       0       0      0      0
ram3       0      0       0       0      0      0       0       0      0      0
ram4       0      0       0       0      0      0       0       0      0      0
ram5       0      0       0       0      0      0       0       0      0      0
ram6       0      0       0       0      0      0       0       0      0      0
ram7       0      0       0       0      0      0       0       0      0      0
ram8       0      0       0       0      0      0       0       0      0      0
ram9       0      0       0       0      0      0       0       0      0      0
ram10      0      0       0       0      0      0       0       0      0      0
ram11      0      0       0       0      0      0       0       0      0      0
ram12      0      0       0       0      0      0       0       0      0      0
ram13      0      0       0       0      0      0       0       0      0      0
ram14      0      0       0       0      0      0       0       0      0      0
ram15      0      0       0       0      0      0       0       0      0      0
sda    19755  13057  834627   82098 488536 207361 5567304  207387      0    161
sdb      941   2526    5713     361    842  70921  143526    2720      0      0
sdc      449    191    2711      75      0      0       0       0      0      0
sdd   237174    194 1896535   22173   1874 233855 1885832  328146      0     24
sde      868   1757    4251     277    760  71240  144000    3584      0      0
sdf      414    101    1711      34      0      0       0       0      0      0
sdg    22910    101  181679    4143    189  22314  180024   32323      0      4
sdh      877   1748    4251      84    623  71377  144000   65594      0      0
sdi      418     95    1695      47      0      0       0       0      0      0
sdj    22417     95  177687    2323    192  22797  183912   79565      0      3
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sdk      881   2145    4879     204    615  70984  143204   65317      0      0
sdl      414    101    1711      30      0      0       0       0      0      0
sdm    22413    101  177703    4086    186  21814  176000   75456      0      4
dm-0   30821      0  829946  324147 695909      0 5567272  681182      0    161
dm-1     112      0     896     905      0      0       0       0      0      0
sr0        0      0       0       0      0      0       0       0      0      0
md0        0      0       0       0      0      0       0       0      0      0
loop0      0      0       0       0      0      0       0       0      0      0
loop1      0      0       0       0      0      0       0       0      0      0
loop2      0      0       0       0      0      0       0       0      0      0
loop3      0      0       0       0      0      0       0       0      0      0
loop4      0      0       0       0      0      0       0       0      0      0
loop5      0      0       0       0      0      0       0       0      0      0
loop6      0      0       0       0      0      0       0       0      0      0
loop7      0      0       0       0      0      0       0       0      0      0

--查看分区的资源使用情况

[root@seaing ~]# vmstat -p /dev/sda1
sda1          reads   read sectors  writes    requested writes
                 124       2309          9         32

--

--以M为单位显示所有情况

[root@seaing ~]# vmstat -S m
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0  16077    186    394    0    0     4    11   31   26  0  0 100  0  0

--显示vmstat版本的信息

[root@seaing ~]# vmstat –V
procps version 3.2.7

--显示内存相关统计信息及多种系统活动数量

[root@seaing ~]# vmstat -s
     16426356  total memory
       725216  used memory
       344788  active memory
       272460  inactive memory
     15701140  free memory
       181712  buffer memory
       385320  swap cache
     18481144  total swap
            0  used swap
     18481144  free swap
         4478 non-nice user cpu ticks
         2105 nice user cpu ticks
        11814 system cpu ticks
     38902423 idle cpu ticks
        14495 IO-wait cpu ticks
        13407 IRQ cpu ticks
         4756 softirq cpu ticks
            0 stolen cpu ticks
      1654066 pages paged in
      4289217 pages paged out
            0 pages swapped in
            0 pages swapped out
     99503472 interrupts
     10117715 CPU context switches
   1508999388 boot time
         8617 forks

说明:

non-nice user cpu ticks 自系统启动以来,CPU在用户态下运行非nice进程的时间,单位为jiffies user
nice user cpu ticks     自系统启动以来,CPU在用户态下运行nice进程的时间,单位为jiffies nice
system cpu ticks        自系统启动以来,CPU处于系统状态的时间,单位为jiffies sys
idle cpu ticks          自系统启动以来,CPU处于闲置状态的时间,单位为jiffies idle
IO-wait cpu ticks       自系统启动以来,CPU处理IO中断的时间,单位为jiffies iowait
IRQ cpu ticks           自系统启动以来,CPU处理硬中断的时间,单位为jiffies irq
softirg cpu ticks       自系统启动以来,CPU处理软中断的时间,单位为jiffies Softirq
interrupts              自系统启动以来,发生的所有的中断的次数目 Intr
CPU context switches    自系统启动以来,发生的上下文交换的次数 Ctxt
boot time               自系统启动以来到现在运行的时间,单位为秒。 btime
forks                   自系统启动以来所创建的任务的个数目。 Process

4、常见问题处理

如果r经常大于4,且id经常少于40,表示cpu的负荷很重。

如果bi,bo长期不等于0,表示内存不足。

关于“Linux命令中vmstat怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


当前标题:Linux命令中vmstat怎么用
本文链接:http://cdxtjz.cn/article/jissgc.html

其他资讯