在 Linux 系统里,vmstat 这个名字听起来像是只跟虚拟内存打交道("Virtual Memory Statistics"),但实际上,它就像个系统状态的万金油——进程、内存、I/O,整个系统的运行情况都能一目了然。常用的语法很简单:vmstat [参数]。下面就把几个核心参数挨个剖开看看。
-a:显示活动内页。相当于把内存中活跃的页面挑出来,方便你判断哪些内存在吃资源。

-f:显示系统启动后创建的进程总数。这个数字能帮你评估系统启动以来到底发生了多少调度活动。

-m:显示 slab 信息。slab 是内核用来管理小对象内存的机制,这个参数适合深入调试内核内存碎片。

-n:头信息仅显示一次。默认情况下 vmstat 会重复打印表头,用这个参数可以让输出更简洁,适合持续监控。

-s:以表格形式呈现事件计数器和内存状态。信息很全,内存、交换、CPU 各种计数器一目了然。

-d:报告磁盘状态。每个磁盘的读取、写入、IO 次数都能看到,适合排查磁盘性能瓶颈。

-p:显示指定硬盘分区状态。比 -d 更细粒度,能盯住某个分区的读写情况。

-S:指定输出信息的单位。默认是 K,可以用这个参数换成 M 甚至 B,使数字更好读。

以上就是 vmstat 命令最常用的几个参数。动手试试,你会发现它比想象中更实用。
