嵌入式Linux热门培训内容之如何直观的判断你的Linux系统是否健康


vmstat命令是非常实用的一种Linux/Unix监控工具,可以直观的浏览到给定的时间间隔的系统运行状态,包括服务器的CPU使用率,内存使用情况,虚拟内存交换情况, 硬盘、内存读写情况。相比top,可以让管理人员看到整个机器的CPU,内存,IO的使用情况,而不仅仅是看到单个进程的CPU使用率和内存使用率。当然也并不是说只用vmstat不用top,实际上两者是应用于不同生产环境当中。


vmstat工具的使用是通过两个数字参数来完成的,第一个参数是给定的时间间隔数,单位是秒,第二个参数是查看的次数。


例如:

1: 给定的时间间隔, 1秒


3: 查看的次数


当然如果不加查看次数的话,会一直监控下去,如果不想监控那就直接停掉vmstat,这也是真实生产环境中常用的操作。


接下来呢就来解释这个命令所显示的所有的参数的含义。


r:运行队列(就是多少个进程真的被分配到CPU),当这个值超过了CPU个数的时候就会出现CPU瓶颈。


B:表示阻塞的进程。


Swpd:虚拟内存已使用的大小,如果大于0就表示设备物理内存不足。


Free : 空闲的物理内存的大小。


Buff :系统中目录内容、权限等级的缓存


Cache : cache直接用来做文件缓冲(linux系统把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高程序执行的性能,当程序使用内存时, buffer/cached会很快地被使用。)


Si : 每秒从磁盘读取虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露,需要查找到耗内存较大的进程解决掉。


So : 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同样也表示内存不够使用。


Bi : 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024


Bo : 块设备每秒发送的块数量,bi和bo的值一般都要接近0,不然就是输入输出过于频繁,需要做出调整。


In : 每秒CPU的中断次数,包括时间中断。


Cs :每秒上下文切换次数,例如使用者调用系统函数,就要进行上下文切换。线程的切换,也要进程上下文切换,这个值要越小越好,太大就要考虑调低线程或者进程的数目。


Us :用户CPU时间,运行状态下用户空间的时间。


Sy :系统CPU时间,运行状态下系统空间的时间,如果太高,表示系统调用时间长。


注: us+sy=进程时间(cpu时间)


Id : 空闲 CPU时间,一般来说,id + us + sy = 100


Wt : 等待IO(输入输出) CPU时间。

 


立即咨询有惊喜哦 !