本文由LinuxProbe.Com团队成员魏丽猿整理发布,原文来自:Linux Performance。
vmstat 命令能够报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息,那么我们又该如何理解其工作原理呢?
vmstat -a 命令能看到active memory和 inactive memory:
$ vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
1 0 138096 319560 1372408 1757848 0 0 2 3 2 3 1 0 99 0 0
但它们的含义在manpage中只给了简单的说明,并未详细解释:
inact: the amount of inactive memory. (-a option)
active: the amount of active memory. (-a option)
在此我们试图准确理解它的含义。通过阅读vmstat的源代码(vmstat.c和proc/sysinfo.c)得知,vmstat命令是直接从/proc/meminfo中获取的数据:
$ grep -i act /proc/meminfo
Active: 1767928 kB
Inactive: 1373760 kB
而/proc/meminfo的数据是在以下内核函数中生成的:
fs/proc/meminfo.c:
========