当前位置: 首页 > 科技观察

如何直观的判断你的Linux系统是否健康

时间:2023-03-16 17:51:33 科技观察

如何直观判断你的Linux系统是否健康?对于linux系统,以上两种方法都不是最有效的检查方式,所以今天给大家推荐一个在linux系统中非常实用的关心系统健康的方法---'vmstat'命令。vmstat命令是一个非常实用的Linux/Unix监控工具,可以直观的浏览给定时间间隔内的系统运行状态,包括服务器的CPU使用率、内存使用率、虚拟内存交换、硬盘、内存读写情况。与top相比,它可以让管理者看到整台机器的CPU、内存、IO使用情况,而不仅仅是单个进程的CPU使用情况和内存使用情况。当然不是说只用vmstat不用top。其实两者是用在不同的生产环境中。vmstat工具的使用是通过两个数值参数来完成的,第一个参数是给定的时间间隔的秒数,第二个参数是查看的次数。例如:1:一个给定的时间间隔,1秒3:观看次数当然,如果不添加观看次数,监控还会继续。如果不想监控,直接停止vmstat即可。这也是真实生产环境中的常见操作。如图,我一直在运行vmstat,一秒钟看八次,然后停了下来。下面解释一下该命令显示的所有参数的含义。r:Runqueue(即实际分配给CPU的进程数),当这个值超过CPU数时,就会出现CPU瓶颈。B:表示一个阻塞的进程。swpd:使用的虚拟内存的大小。如果大于0,说明设备物理内存不足。Free:可用物理内存的大小。buff:目录内容和权限级别在系统中的缓存Cache:缓存直接用于文件缓冲(linux系统使用一部分空闲物理内存作为文件和目录的缓存,以提高程序执行的性能。当程序使用时使用memory,buffer/cached会很快用到。)si:每秒从磁盘读取的虚拟内存大小。如果这个值大于0,说明物理内存不够或者内存泄露。需要找到那个消耗内存大的进程来解决。So:每秒写入磁盘的虚拟内存大小。如果这个值大于0,也说明内存不够用。Bi:块设备每秒接收到的块数。这里的块设备是指系统中的所有磁盘和其他块设备。默认块大小为1024Bo:块设备每秒发送的块数。bi和bo的取值一般都接近于0,否则输入输出过于频繁,需要调整。In:每秒CPU中断次数,包括时间中断。cs:每秒上下文切换的次数,比如用户调用系统函数时,需要进行上下文切换。线程切换也需要进程上下文切换。值越小越好。如果太大,考虑减少线程或进程的数量。us:用户CPU时间,用户空间处于运行状态的时间。sy:系统CPU时间,系统空间处于运行状态的时间,如果过高,说明系统调用时间长。注:us+sy=processtime(cpu时间)id:空闲CPU时间,一般来说,id+us+sy=100Wt:等待IO(输入输出)CPU时间。