在阅读本文之前,请注意,我了解caching的好处。 我熟悉未使用的公羊是浪费公羊的教条。
这个问题是我从以前的问题中改编的:
删除LinuxcachingRAM
在那个问题上,我很好奇如何调整我的服务器如何使用和caching内存。 该系统是相当dynamic的,所以我相信 ,caching的文件并没有给我带来太多的收益。 此外,我们在服务器上的代码必须在短时间内快速访问大量的内存来处理video文件, 我相信我会看到直接交付内存,而不是从caching中清除,然后把它关掉。
我想知道你是否有经验在下面的文件中调整默认值60(这恰好在Ubuntu服务器上):
/proc/sys/vm/swappiness
如果是的话,你看到了什么影响。 如果我用30replace默认值60,我会看到更less的交换和更多的重用旧的caching? 我是否接近0或100来减less交换并增加caching的重用?
最后,谁知道为什么默认设置为60?
注意:如果接近于0,Linux将更喜欢将应用程序保存在RAM中,而不是增长caching。 如果接近100,Linux会倾向于交换应用程序,并尽可能地扩大caching。 默认是健康的60. – 感谢下面的链接,3dInfluence。
编辑:重写了答案,使其更短,更清晰,我希望:)
您确实需要了解虚拟机子系统如何作为一个整体开始调整可调参数,否则您可能会发现自己没有获得预期的结果。 这篇文章是这些设置如何与桌面倾斜一起工作的一个很好的起点。
所以更多的是你的问题。 当VM子系统通过取消映射并将其分页出去,也就是交换时,Swappiness控制VM子系统回收进程表页面。 这个可调参数的工作原理是当映射到进程页面表的内存百分比+ swappiness值大于100时,告诉VM子系统寻找页面进行交换。因此,设置为60将导致系统开始从进程页面调出过时页面表使用超过40%的系统内存。 如果你想允许你的程序使用更多的内存而不是以caching为代价,那么你就需要降低swappiness的值。 您还需要查看/ proc / sys / vm / min_free_kbytes和/ proc / sys / vm / vfs_cache_pressure。 因为这也将控制保留多less内存以及高速caching有多积极。 请参阅我链接的那篇文章,以获取关于后者的更多信息。