vmstat

vmstat 是一个非常有用的 Linux 命令行工具,主要用于监视系统虚拟内存统计信息以及系统的整体健康状况。通过 vmstat 可以查看如物理和虚拟内存、交换空间利用率、进程数、块 I/O 活动、上下文切换等重要指标,帮助管理员和开发者了解当前系统的负载情况。

基本用法

语法

vmstat [选项]

vmstat 是一个多功能工具,其最简单的形式只需通过命令即可运行。通常情况下,它会以表格的形式输出当前的系统状态。

示例

直接执行 vmstat 可以查看系统的即时状态:

$ vmstat

输出可能如下所示:

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 235768 119724 373792    0    0     0     0   30   43  2  1 97  0  0

常用选项

-s

-s 选项会输出详细的系统状态信息,包括内存、交换区、磁盘使用情况等:

$ vmstat -s

示例输出:

Memory:              4194304 k total physical memory
                      258176 k free physical memory
                     1348416 k used physical memory
                       36620 k max shared memory
                     4194304 k total virtual memory
                     2048796 k available virtual memory
                      251876 k active physical memory
                      1093104 k inactive physical memory
                       371528 k dirty physical memory
                     2688160 k writeback physical memory
                    42329728 k pagebench resident pages
                    41380480 k pagebench mapped file pages
                      119344 k anon pages in swap cache
                       51180 k swap cache
                     363116 k reserved memory

-d

-d 选项用于显示 I/O 设备的详细信息:

$ vmstat -d

示例输出:

disk:              total     used    free   %used iops  bps_sequ  bps_random
 sda             19052846 73857820 22462865   30.2%   0         0        0
 sr0              19052846    15692 19037154     0.0%   0         0        0

-n

-n 选项用于指定哪些统计信息要显示,例如 c 表示 CPU 使用情况,m 表示内存使用情况等:

$ vmstat -n c m

示例输出:

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 235768 119724 373792    0    0     0     0   30   43  2  1 97  0  0

-p

-p 选项用于指定显示特定的进程或线程:

$ vmstat -p PID

实时监控

你可以通过添加参数来实现 vmstat 的实时输出,如每秒更新一次数据:

$ vmstat 1

这样可以持续地看到系统状态的变化。

总结

vmstat 是一个强大的工具,适用于日常维护和性能调优。通过简单的命令行操作即可获取到系统的整体健康状况信息,帮助用户快速定位问题并进行相应的调整。