这个问题是我从之前的问题中改编的:
在那个问题中,我很好奇调整我的服务器使用和缓存内存的方式.系统是相当动态的,所以我相信缓存的文件并没有给我带来太多的好处.另外,我们在服务器上有代码,必须在短时间内快速访问大量ram来处理视频文件.我相信我会看到直接处理ram而不是从缓存清除然后然后清除它的性能优势交还.
我想知道是否有人在以下文件中调整默认值60的经验(这恰好在ubuntu服务器上):
/proc/sys/vm/swappiness
如果是这样,你看到了什么影响.如果我用30替换默认值60,我会看到更少的交换和更多的陈旧缓存重用?我是接近0还是100来减少交换并增加缓存的重用?
最后,任何人都知道为什么默认设置为60?
注意:如果它接近0,Linux将更喜欢将应用程序保留在RAM中而不是增加缓存.如果它接近100,Linux将更愿意交换应用程序,并尽可能扩大缓存.默认值是健康的60. – 感谢下面的链接,3dInfluence.
解决方法
您真的需要了解VM子系统如何作为一个整体开始调整可调参数,或者您可能发现您没有得到您期望的结果.关于这些设置如何与桌面倾斜一起工作,This article是一个非常好的起点.
更重要的是你的问题.当VM子系统通过取消映射并将其分页(即交换)来回收进程表页面时,Swappiness控制.这个可调参数通过告诉VM子系统在映射到进程页表swappiness值的内存百分比是>时查找要交换的页面. 100.因此,设置为60将导致系统在使用系统内存的40%以上时从进程页表中开始分页过时的页面.如果您希望允许程序以缓存为代价使用更多内存,则需要降低swappiness值.您还需要查看/ proc / sys / vm / min_free_kbytes和/ proc / sys / vm / vfs_cache_pressure.因为这也将控制保留多少内存以及缓存的积极程度.请参阅我链接的文章,了解有关后者的更多信息.