即使可用内存为 250 MB,“min_free_kbytes=256000”是否允许缓存?

即使可用内存为 250 MB,“min_free_kbytes=256000”是否允许缓存?

我实际上正在绘制一个内存图,显示我的虚拟机上的可用内存、缓存内存、已用内存和缓冲内存,并且我正在使用命令获取这些值sar -r。我的min_free_kbytes是 256000。

在此处输入图片描述

现在,缓存内存不断增加,直到只剩下 500MB 的可用内存。为什么虽然设置min_free_kbytes为 250 MB,但当可用内存降至 500 MB 左右时,缓存内存就会减少?

答案1

可调变量/proc/sys/vm/min_free_kbytes没有定义系统开始回收各种形式的缓存内存(如果有)的确切时间点。

可调变量/proc/sys/vm/min_free_kbytes用于计算至少一个最低限度内存页数和低的每个区域的内存页数(如果适用)。一旦可用的内存页数低于低的内存管理系统将开始尝试回收可用的缓存内存页面。目标是永远不会真正达到最低限度内存页面的数量(尽管它可以),同时保持空间(和响应时间)以满足低延迟内存要求。

也可以看看:
/proc/meminfo /proc/zoneinfo

Linux内存管理是一个很大的课题,我的回答很肤浅。

相关内容