在 Fedora 22 上使用 sar 命令导致错误的内存统计

Using sar command results in wrong memory statistics on Fedora 22

我正在尝试通过 sar 收集各种信息来监控一些服务器。当前应监控的所有系统都是 运行 Fedora 22。不幸的是,我无法获得正确的内存读数。

>免费: total used free shared buff/cache available Mem: 1017260 34788 150984 68 831488 816204 Swap: 524284 20960 503324

> sar -r 1: kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 150996 866264 85.16 40 60784 169524 11.00 39572 31068 164

sar 是如何得出这些数字的? kbmemfree 似乎没问题,如果将 free 中的 usedbuff/cache 加在一起,kbmemused 也有意义。但是 kbbufferskbcached 看起来相去甚远 - 我的假设是 kbmemused - kbbuffers - kbcached = used (output of free),但这并不匹配。

我是不是做错了什么?两天以来我一直在为这个问题苦苦挣扎,无法找到任何进一步的信息。

free from the procps tools 似乎将 /proc/meminfo 中的 Slab: 添加到其缓存输出中。参见 proc/sysinfo.c kb_main_cached

因此,要从 sar 获得等效输出,您需要将 sar -r ALL 1 中的 kbcachedkbslab 相加。