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:缓冲,硬盘到
联系我->邮件写信