# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 2079496161412013924078792800231000111880
swap:swap 有 si 和 so 列,用于报告交换内存统计信息。你可以用 free -m 命令看到相同的信息。
si:从磁盘交换的内存量(换入,从 swap 移到实际内存的内存)。
so:交换到磁盘的内存量(换出,从实际内存移动到 swap 的内存)。
I/O:I/O 有 bi 和 bo 列,它以“块读取”和“块写入”的单位来报告每秒磁盘读取和写入的块的统计信息。如果你发现有巨大的 I/O 读写,最好使用 iotop 和 iostat 命令来查看。
bi:从块设备接收的块数。
bo:发送到块设备的块数。
system:system 有 in 和 cs 列,它报告每秒的系统操作。
in:每秒的系统中断数,包括时钟中断。
cs:系统为了处理所以任务而上下文切换的数量。
CPU:CPU 有 us、sy、id 和 wa 列,报告(所用的) CPU 资源占总 CPU 时间的百分比。如果你发现异常,最好使用 top 和 free 命令。
us:处理器在非内核程序消耗的时间。
sy:处理器在内核相关任务上消耗的时间。
id:处理器的空闲时间。
wa:处理器在等待IO操作完成以继续处理任务上的时间。
以 MB 方式输出
默认情况下,vmstat 以千字节为单位显示内存统计,这是非常难以理解的,最好添加 -S m 参数以获取以兆字节为单位的统计。
1 2 3 4 5
# vmstat -S m procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 10103371406211600401500111870
# vmstat 2 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 10105500325776416016216691200401500111870 0010550032564441601621669200001310831174111870 0010550030864841602421669280011615591453162820 00105500285948416032216693200012934100391900 00105500326620416040216694000127922106891900 0010550036670441604821669440001783595591900 0010550036645641605621669480012285991891900 0010550036645641605621669480001515391504172810 001055003652244160602166996001199841097111880
带延迟和计数运行 vmstat
或者,你可以带延迟和特定计数运行 vmstat,一旦达到给定的计数,然后自动退出。
以下命令将每 2 秒运行一次,10 次后自动退出。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# vmstat 2 10 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1079496158191615738081041200231001111880 20794961559464157380810416001118211749212770 007949615837681573848104160014668179991900 20794961556364157384810428001113921545152830 00794961583272157384810428001013071448142840 207949615820321573848104280014142460541960 10794961575848157384810428001019122407262710 007949615828841573848104360016967882591900 2079496156936815739281043200112692096991900 107949615836121574008104440073920012530202770
显示活动和非活动内存
默认情况下,vmstat 会显示除活动和非活动内存之外的内存统计信息。如果要查看活动和非活动内存统计信息,请在 vmstat 后添加 -a 参数。
1 2 3 4 5
# vmstat -a procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free inact active si so bi bo in cs us sy id wa 10105500238759241514858411200401501111870
# vmstat -t 1 5 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ ---timestamp--- r b swpd free buff cache si so bi bo in cs us sy id wa st 00069814161813242458860400010000100002017-01-1115:42:15 MST 2006981276181324245886040000914000100002017-01-1115:42:16 MST 00069820161813242458860400007511600100002017-01-1115:42:17 MST 0006982016181324245886040000433900100002017-01-1115:42:18 MST 000698228018132424588604000011318500100002017-01-1115:42:19 MST
# vmstat -s 32849392 total memory 25864128 used memory 16468180 active memory 8320888 inactive memory 6985264 free memory 181324 buffer memory 24588612 swap cache 20970492 total swap 0 used swap 20970492 free swap 891075 non-nice user cpu ticks 6532 nice user cpu ticks 1507099 system cpu ticks 18925265601 idle cpu ticks 113043 IO-wait cpu ticks 108 IRQ cpu ticks 4185 softirq cpu ticks 0 stolen cpu ticks 4071862 pages paged in 216759718 pages paged out 0 pages swapped in 0 pages swapped out 369611221 interrupts 477861261 CPU context switches 1478258826 boot time 2196121 forks