帮助中心 >  技术知识库 >  数据库 >  相关技术支持 >  Linux vmstat命令详解:监控系统资源

Linux vmstat命令详解:监控系统资源

2019-01-30 22:50:29 12170

vmstat 是 Linux 中的一个综合性能分析工具,可以用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、磁盘输入/输出状态等信息。


vmstat 命令格式如下:

[root@localhost ~]# vmstat [刷新延时 刷新次数]


例如:

[root@localhost proc]# vmstat 1 3
#使用vmstat检测,每隔1秒刷新一次,共刷新3次
procs ——memory—— swap —io system ——cpu——
r b swpd free buff cache si so bi bo in cs us sy id wa st
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 407376 55772 84644 0 0 5 2 9 10 0 0 100 0 0
0 0 0 407368 55772 84644 0 0 0 0 12 10 0 0 100 0 0
0 0 0 407368 55772 84644 0 0 0 0 15 13 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 命令查看到的参数值就会比较大。我们就需要手工进行干预,如果是非正常进程占用了系统资源,则需要判断这些进程是如何产生的,不能一杀了之;如果是正常进程占用了系统资源,则说明服务器需要升级了。


本机是一台测试用的虚拟机,并没有多少资源被占用,所以资源占比都比较低。如果服务器上的资源占用率比较高,那么使用 vmstat 命令查看到的参数值就会比较大。我们就需要手工进行干预,如果是非正常进程占用了系统资源,则需要判断这些进程是如何产生的,不能一杀了之;如果是正常进程占用了系统资源,则说明服务器需要升级了。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: