Linux 性能分析工具汇总之vmstat–虚拟内存统计

简介

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。

vmstat (VirtualMeomoryStatistics,虚拟内存统计) 是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视。

vmstat的常规用法:vmstat interval times 即每隔 interval 秒采样一次,共采样 times 次,如果省略 times,则一直采集数据,直到用户手动停止为止。

第一行显示了系统自启动以来的平均值

第二行开始显示现在正在发生的情况

接下来的行会显示每5秒间隔发生了什么

每一列的含义在头部

简单举个例子:

[root@k8s-master01 ~]# vmstat 5 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b   swpd   free   buff cache   si   so   bi   bo   in   cs us sy id wa st
1  0      0 5501672    992 6074152    0    0     1    10    1    3  1  0 98  0  0
1  0      0 5500952    992 6074156    0    0     0    58 5622 8466  1  1 98  0  0
^C
[root@k8s-master01 ~]#

可以使用ctrl+c停止vmstat采集数据。

vmstat 使用说明:

  • procs:进程数,此数由 linux 计算得出,但 linux 并不耗尽交换空间
    • r:这一列显示了多少进程在等待cpu(等待运行的进程数)
    • b:列显示多少进程正在不可中断的休眠(非中断睡眠状态的进程数)
    • w:被交换出去的可运行的进程数
  • memory:内存使用情况
    • swapd:列显示了多少块被换出了磁盘(页面交换)
    • free:剩下的列显示了多少块是空闲的(未被使用)
    • buff:多少块正在被用作缓冲区
    • cache:以及多少正在被用作操作系统的缓存
  • swap:显示交换活动
    • si:每秒有多少块正在被换入,从磁盘交换到内存的交换页数量
    • so 从内存交换到磁盘的交换页数量
  • io:显示了多少块从块设备读取bi和写出,通常反映了硬盘I/O
    • bi:发送到块设备的块数
    • bo:从块设备接收到的块数
  • system:
    • 显示每秒中断 (in) 的数量
    • 上下文切换(cs)的数量。
  • cpu:显示所有的cpu时间花费在各类操作的百分比
    • 用户进程使用的时间,包括执行用户代码(非内核)
    • 系统进程使用的时间,执行系统代码(内核)
    • cpu空闲的时间以及等待IO

vmstat的语法如下:

vmstat [-V] [-n] [delay [count]]

参数说明:

其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。对于vmstat输出各字段的含义,可运行man vmstat查看。

举例说明:

通常使用vmstat 5 5(表示在5秒时间内进行5次采样)命令测试。

将得到一个数据汇总它可以反映真正的系统情况。

[root@k8s-master01 ~]# vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b   swpd   free   buff cache   si   so   bi   bo   in   cs us sy id wa st
1  0      0 5505828    992 6073660    0    0     1    10    0    3  1  0 98  0  0
0  0      0 5505608    992 6073756    0    0     0    38 5653 8671  1  1 98  0  0
0  0      0 5505924    992 6073760    0    0     0    26 5854 9084  1  1 98  0  0
0  0      0 5505988    992 6073764    0    0     0    34 6269 9794  1  1 98  0  0
0  0      0 5505504    992 6073768    0    0     0   330 5827 8759  1  0 97  1  0
[root@k8s-master01 ~]#

系统问题判断:

内存不足的表现:free memory急 剧减少,回收buffer和cacher也无济于事,大量使用交换分区(swpd),页面交换(swap)频繁,读写磁盘数量(io)增多,缺页中断(in)增多,上下文切换(cs)次数增多,等待IO的进程数(b)增多,大量CPU时间用于等待IO(wa)

cpu的负荷很重表现:r经常大于 4 ,且id经常少于40

版权声明:本文为作者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原创文章,作者:老C,如若转载,请注明出处:https://www.code404.icu/303.html

发表评论

登录后才能评论