linux vmstat命令


vmstat命令可以实时动态的追踪系统资源的运行状态,vmstat可以侦测CPU、内存、磁盘输入输出状态等, 如果想要了解是哪个环节导致系统的繁忙和资源紧张,可以使用vmstat命令查看。
vmstat命令常用格式如下:
[root@initroot ~]# vmstat [-a] [延迟 [总计侦测次数]]     #CPU/内存等信息
[root@initroot ~]# vmstat [-fs]                       #内存相关
[root@initroot ~]# vmstat [-S 单位]                    #设定显示数据的单位
[root@initroot ~]# vmstat [-d]                        #与磁盘有关
[root@initroot ~]# vmstat [-p 分区]                  #与磁盘有关
选项与参数:
-a :使用inactive/active(活跃与否)取代buffer/cache的内存输出信息;
-f :开机到目前为止,系统复制(fork)的进程数;
-s :将开机至目前为止一些事件导致的内存变化情况列表说明;
-S :后面可以接单位,让显示的数据有单位。例如K/M取代bytes;
-d :列出磁盘的读写总量统计表
-p :后面接分区,显示该分区的读写总量统计表
统计当前主机CPU状态,每秒一次,共计三次:
[root@initroot ~]# vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0  16908 298580  86508 1867008    0    0    42    20  306   56 10  2 86  2  0
 0  0  16908 298684  86508 1867008    0    0     0     8  820 1549  4  1 95  0  0
 0  0  16908 298808  86508 1867008    0    0     0     0 1178 2155 14  1 85  0  0
vmstat命令可以实时追踪系统资源状态变化,可以使用类似vmstat 5每五秒钟更新一次,直到你按下ctrl-c为止。
上面各字段的意义说明如下:
  • 进程(procs):
    • r:等待运作中的进程数量;
    • b:不可被唤醒的进程数量。这两个项目越多,代表系统越忙碌(因为系统太忙,所以很多进程就无法被执行或一直在等待而无法被唤醒之故)。
  • 内存(memory):与free命令相同
    • swpd:虚拟内存被使用的容量;
    • free:未被使用的内存容量;
    • buff:用于缓冲存储器;
    • cache:用于高速缓存。
  • 内存交换空间(swap),如果 si/so的数值太大,表示内存内的数据常常得在磁盘与主存储器之间传来传去,系统效能会很差!
    • si:由磁盘中将进程取出的量
    • so:由于内存不足而将没用到的进程写入到磁盘的swap的容量
  • 磁盘读写(io) 如果这部份的值越高,代表系统的I/O非常忙碌!
    • bi:由磁盘读入的区块数量;
    • bo:写入到磁盘去的区块数量
  • 系统(system)
    • in:每秒被中断的进程次数
    • cs:每秒钟进行的事件切换次数;
      这两个数值越大,代表系统与接口设备的沟通非常频繁! 这些接口设备当然包括磁盘、网络卡、时间钟等
  • CPU
    • us:非内核层的CPU使用状态
    • sy:内核层所使用的CPU状态
    • id:闲置的状态
    • wa:等待I/O所耗费的CPU状态
    • st:被虚拟机(virtual machine)所盗用的CPU使用状态
如果服务器非常忙碌,记得使用vmstat去看看,到底是哪个部分的资源被使用的最为频繁.
一般来说,如果I/O部分很忙碌的话,你的系统会变的非常慢! 让我们再来看看,那么磁盘的部分该如何观察:
观察系统上所有磁盘的读写状态:
[root@initroot ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
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
sr0        0      0       0       0      0      0       0       0      0      0
sda   210220  48481 6556186 3083940  37507  64195 3392736 6398756      0   1176

本文由initroot编辑整理,转载请注明www.initroot.com

100次点赞 100次阅读