Linux vmstat命令:监控系统资源(附带实例)
vmstat 命令是 Linux 系统中的一个综合性能分析工具,可以用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、磁盘输入/输出状态等信息。
vmstat 命令的语法格式如下:
例如:
1) procs 表示进程信息字段:
2) memory 表示内存信息字段:
3) swap 表示交换分区信息字段:
4) io 表示磁盘读/写信息字段:
5) system 表示系统信息字段:
6) cpu 表示 CPU 信息字段:
本机是一台测试用的虚拟机,并没有多少资源被占用,因此资源占比都比较低。如果服务器上的资源占用率比较高,那么使用 vmstat 命令查看到的参数值就会比较大,我们就需要手工进行干预。如果是非正常进程占用了系统资源,就需要判断这些进程是如何产生的,不能一杀了之;如果是正常进程占用了系统资源,就说明服务器需要升级了。
vmstat 命令的语法格式如下:
[root@localhost~]# vmstat[刷新延时 刷新次数]
例如:
[root@localhost proc]# vmstat 1 3 #使用vmstat命令检测,每隔一秒刷新一次,共刷新三次 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 0 329080 2672 286388 0 0 24 10 80 184 0 0 100 0 0 0 0 0 329080 2672 286388 0 0 0 0 91 207 0 0 100 0 0 0 0 0 329080 2672 286388 0 0 0 0 98 213 0 0 100 0 0解释一下这个命令的输出。
1) procs 表示进程信息字段:
- r:等待运行的进程数,数量越大,系统越繁忙;
- b:不可被唤醒的进程数量,数量越大,系统越繁忙。
2) memory 表示内存信息字段:
- swpd:虚拟内存的使用情况,单位为 KB;
- free:空闲的内存容量,单位为 KB;
- buff:缓冲的内存容量,单位为 KB;
- cache:缓存的内存容量,单位为 KB。
3) swap 表示交换分区信息字段:
- si:从磁盘中交换到内存中数据的数量,单位为 KB;
- so:从内存中交换到磁盘中数据的数量,单位为 KB。这两个数值越大,就表明数据需要经常在磁盘和内存之间进行交换,系统性能越大,就表明数据需要经常在磁盘和内存之间进行交换,系统性能越差。
4) io 表示磁盘读/写信息字段:
- bi:从块设备中读入的数据的总量,单位是块;
- bo:写到块设备的数据的总量,单位是块。这两个数值越大,代表系统的 I/O 越繁忙。
5) system 表示系统信息字段:
- in:每秒被中断的进程次数;
- cs:每秒进行的事件切换次数。这两个数值越大,代表系统与接口设备的通信越繁忙。
6) cpu 表示 CPU 信息字段:
- us:非内核进程消耗 CPU 运行时间的百分比;
- sy:内核进程消耗 CPU 运行时间的百分比;
- id:空闲 CPU 的百分比;
- wa:等待 I/O 所消耗的 CPU 百分比;
- st:被虚拟机所盗用的 CPU 百分比。
本机是一台测试用的虚拟机,并没有多少资源被占用,因此资源占比都比较低。如果服务器上的资源占用率比较高,那么使用 vmstat 命令查看到的参数值就会比较大,我们就需要手工进行干预。如果是非正常进程占用了系统资源,就需要判断这些进程是如何产生的,不能一杀了之;如果是正常进程占用了系统资源,就说明服务器需要升级了。