Linux :我对Vmstat的理解

首先,在公司的服务器上,有时候会出现top命令中cpu的内存和负载很高的情况,我们要如何查看具体的原因,这个时候,就要用到vmstat命令,来进行仔细分析,系统中内存,进程,CPU,硬盘读写,swap分区等的运行情况

 

[root@web110 ~]# vmstat 2 5
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 584772  76516 177184    0    0    17     9   17   20  0  0 99  1  0    
 0  0      0 584724  76516 177184    0    0     0     0   11   13  0  0 100  0  0    
 0  0      0 584724  76524 177184    0    0     0     8   12   15  0  0 100  0  0    
 0  0      0 584732  76524 177184    0    0     0     0   14   15  0  0 100  0  0    
 0  0      0 584732  76524 177184    0    0     0     0   13   13  0  0 100  0  0    

vmstat 这个命令本身很简单 vmstat 2  5 的意思是每2秒打印一次系统的进程状态、内存使用、虚拟内存使用、磁盘的IO、中断、上下文切换、CPU使用等状态

默认vmstat 会打印一次命令执行时候的系统状态

[root@web110 ~]# 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 584632  76620 177192    0    0    16     9   17   20  0  0 99  1  0	

 

第一列:procs,没有错的话,全称就是processor 进程,很明显,这就是进程运行的状态情况了。

r :running 表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,就说明要处理的任务很多,CPU不能够立刻都处理,也就是CPU资源不足,可以考虑增加CPU等优化方案

b: block 阻塞,表示在等待资源的进程数,比如正在等待I/O或者内存交换等。这个参数和r列的参数有一定的关系

 

第二列 memory :英文意思,内存 ,下面有四列:

swpd   free   buff  cache

  swpd :虚拟内存,也就是叫唤分区的使用情况 ,swap交换分区使用的情况,内存不足,或者内存泄漏,会导致这种情况,可以考虑看情况增加内存,或者将耗内存的业务移植到单台内存比较大的服务器上。

  当出现:如果swpd的值不为0或者比较大,而且si、so的值长期为0,那么这种情况一般不用担心,不会影响系统性能;

  free :内存,也就是我们所说的物理内存,单位是KB

  buff:缓冲,硬盘到

posted @ 2017-01-11 00:17  -起风了🪐  阅读(465)  评论(0编辑  收藏  举报