我现在对 Linux 操作系统中的 RAM 使用情况有了更多的了解,并且我知道我可以使用 free -h 来正确了解我的服务器中的 RAM 使用情况。
但是我的服务器上也有 SAR 在运行,我看不到 SAR 输出和自由输出之间的联系。
该网站写了这些命令输出之间的一些关系,但对于我的服务器来说并不正确。为什么? https://www.catalyst2.com/knowledgebase/server-management/investigating-memory-usage-with-sar/
例如这里我同时拥有的内容:
sar -f /var/log/sa/sa04 -r
Linux 3.10.0-1062.4.1.el7.x86_64 (XXXXX) 03/04/2024 _x86_64_ (32 CPU)
Average: kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
229307171 394
10:15:01 AM 20288408 507419344 96.16 23956 425241152 139210760 25.57 259695284 230272148 148
10:20:01 AM 20105208 507602544 96.19 23956 425232140 139499180 25.62 259847160 230279820 348
10:25:01 AM 21172892 506534860 95.99 23956 425321436 138078624 25.36 258889072 230283168 200
10:30:01 AM 21162780 506544972 95.99 23956 425347776 138069932 25.36 258893704 230280008 216
10:35:01 AM 20702812 507004940 96.08 23956 425471328 139023364 25.53 259269580 230360248 7032
10:40:02 AM 20318412 507389340 96.15 23956 425443164 141154772 25.92 259582372 230358724 1192
10:45:02 AM 19954804 507752948 96.22 23956 425795580 141170648 25.93 259644240 230674360 196
10:50:01 AM 20096560 507611192 96.19 23956 425794692 140834740 25.87 259517620 230666828 204
free -h
total used free shared buff/cache available
Mem: 503G 75G 19G 1.6G 408G 425G
Swap: 15G 666M 15G
看来 buff/cache 值 408G 不等于 kbchached+kbbuffers……kbcached 值似乎等于 free 的“available”输出。
奇怪了,SAR配置有问题吗?
请注意,这些命令是在同一时间启动的,并且 sar 刷新足够小,因此 RAM 使用率在间隔内不会发生很大变化。
答案1
sar
和均free
从 处获取信息/proc/meminfo
。
自由人准确描述哪些值/proc/meminfo
与其输出相对应。
buffers
价值Buffers
在于/proc/meminfo
cache
价值是Cached
并且SReclaimable
/proc/meminfo
buff/cache
缓冲区和缓存的总和
曼萨尔没有这样的描述,但从源代码来看rd_stats.c看起来:
kbcached
等于Cached
kbbuffers
等于Buffers
。
sar
和输出之间的区别free
在于SReclaimable
哪个free
计数,哪个sar
不计数。