ITPub博客

首页 > Linux操作系统 > Linux操作系统 > vmstat学习

vmstat学习

Linux操作系统 作者:26125794 时间:2016-01-14 10:36:48 0 删除 编辑

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写, 是实时系统监控工具。该命令通过使用knlist子程序和/dev/kmen伪设备驱动器访问这些数据,输出信息直接打印在屏幕。vmstat反馈的与CPU相关的信息包括:
(1)多少任务在运行
(2)CPU使用的情况
(3)CPU收到多少中断
(4)发生多少上下文切换
下面只介绍 Vmstat与CPU相关的参数
vmstat的语法如下:
  vmstat [delay [count]]
参数的含义如下:
参数 解释
delay 相邻的两次采样的间隔时间
count 采样的次数,count只能和delay一起使用
当没有参数时,vmstat则显示系统启动以后所有信息的平均值。有delay时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个delay时间段的平均信息。当系统有多个CPU时,输出为所有CPU的平均值。

范例1average mode (粗略信息)
当vmstat不带参数时,对应的输出值是从系统启动以来的平均值,而r和b则对应的是完成这一命令时,系统的值。从下面例子,可以看出系统基本出去闲置状态(idle)。自启动以来,CPU在用户态消耗时间为5%,在核心态消耗为本1%,剩下的为闲置时间。需要指出的是:这里的用户态时间包括nice值为负的进程的时间。
[root@server ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b   swpd   free   buff cache   si   so    bi    bo   in   cs us sy id wa st
3 0    100   5588    992 374612    0    0    48    41 513   83 0 1 99 0 0

范例2vmstat –s
这里只讨论与CPU相关信息。“CPU ticks”表示自系统启动CPU运行时间,这里以tick为时间单位。用tick来西安市us,sy id 和wa的时间;forks指自从系统启动以来,所创建的新任务的个数。这些信息从/proc/stat 的第一行和”processes”行获得。
CODE:
[root@localhost ~]# vmstat -s
255280 total memory
244216 used memory
206624 active memory
21208 inactive memory
11064 free memory
628 buffer memory
91396 swap cache
255992 total swap
24 used swap
255968 free swap
973400 non-nice user cpu ticks
477 nice user cpu ticks
206168 system cpu ticks
43567714 idle cpu ticks
373234 IO-wait cpu ticks
62732 IRQ cpu ticks
1972 softirq cpu ticks
22366502 pages paged in
88756936 pages paged out
0 pages swapped in
0 pages swapped out
135634319 interrupts
137288441 CPU context switches
1134440368 boot time
208990 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

范例3定期采样(delay [count])
      定期采样数据是指每隔delay时间,采样一次。当count 为0时,vmstat 将不停地定期报告信息;否则当报告count次后,vmstat 命令停止运行。
     第一行的信息如同范例1,是自系统启动以来的平均信息。从第二行开始,每行的意思是:r和b采样那一时刻系统运行队列和等待队列的情况;而usystem参数(in,cs)以及CPU参数(us,sy,id,wa)对应的输出值是系统在前一个delay的情况。
      从下面例子可以看出上下文交换的次数小于中断的发生次数。当系统大部分时间是空闲并且中断大部分是时间中断时,这种现象极可能发生。当时间中断发生时, 因为调度器没有什么任务可调度,所以很少发生上下文切换。

[root@localhost ~]# vmstat 2 4
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b    swpd free buff cache        si so       bi bo    in cs    us sy id wa
1 0     24 11032 652 91396        0 0         49 6     15 19    2 1 96 1
0 0     24 11032 652 91396        0 0         0 0     377 464   1 0 99 0
0 0     24 11024 652 91396        0 0         0 0     387 476   1 0 100 0
0 0     24 11024 652 91396        0 0         0 0     323 377   0 0 100 0

PROCS
r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
b 表示阻塞的进程

MEMORY
swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足
free   空闲的物理内存的大小
buff 表示buffers cache的内存数量,一般对块设备的读写才需要缓冲

cache 表示page cached的内存数量,一般作文件系统的cached,频繁访问的文件都会被cached

SWAP
si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0
so  每秒虚拟内存写入磁盘的大小,如果这个值大于0

IO
bi  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备
bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0

SYSTEM
in 每秒CPU的中断次数,包括时间中断
cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目

CPU

us 显示了用户进程消耗CPU的时间百分比。us的值比较高时,说明用户进程消耗的CPU时间多,如果长期大于50%,需要考虑优化程序啥的。

sy 显示了内核进程消耗CPU的时间百分比。sy的值比较高时,就说明内核消耗的CPU时间多;如果us+sy超过80%,就说明CPU的资源存在不足。

id 显示了CPU处在空闲状态的时间百分比;

wa 表示IO等待所占的CPU时间百分比。wa值越高,说明IO等待越严重。如果wa值超过20%,说明IO等待严重。

st 一般不关注,虚拟机占用的时间百分比






来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27057145/viewspace-1976307/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: free命令学习
请登录后发表评论 登录
全部评论

注册时间:2012-06-18

  • 博文量
    14
  • 访问量
    26981