vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如:
|
|
第一个参数表示每隔多久采集一次 第二个参数是总共采集次数
- r 表示运行队列
- b 表示阻塞的进程
- swpd 交换分区虚拟内存已使用的大小
- free 空闲的物理内存的大小
- buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存
- cache cache直接用来记忆我们打开的文件,给文件做缓冲
- si 每秒从磁盘读入虚拟内存(交换分区)的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了
- so 每秒虚拟内存写入磁盘的大小(交换分区),如果这个值大于0,同上。
- bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte
- bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
- in 每秒CPU的中断次数,包括时间中断
- cs 每秒上下文切换次数,调用系统函数、线程的切换需要进程上下文切换,这个值要越小越好
- us 用户CPU时间(用户态)
- sy 系统CPU时间(系统态)
- id CPU空闲时间 一般来说,id + us + sy = 100
- wa 等待IO CPU时间。
- st 未知