在 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
中的 used
和 buff/cache
加在一起,kbmemused
也有意义。但是 kbbuffers
和 kbcached
看起来相去甚远 - 我的假设是 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
中的 kbcached
和 kbslab
相加。
我正在尝试通过 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
中的 used
和 buff/cache
加在一起,kbmemused
也有意义。但是 kbbuffers
和 kbcached
看起来相去甚远 - 我的假设是 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
中的 kbcached
和 kbslab
相加。