Linux互换性-调整内核VM设置


9

在阅读本文之前,请注意我了解缓存的好处。我对未使用的公羊是浪费公羊的教条很熟悉。

这个问题是我从上一个问题改编而来的:

删除Linux缓存的RAM

在这个问题上,我很好奇如何调整服务器使用和缓存ram的方式。该系统是相当动态的,因此我相信缓存的文件并不能真正给我带来太多好处。另外,我们服务器上的代码必须在短时间内快速访问大量ram以处理视频文件,我相信直接处理ram而不是从缓存中清除然后再清除它会带来性能上的好处交出。

我想了解一下您是否有经验来调整以下文件中的默认值60(这恰好在Ubuntu服务器上):

/proc/sys/vm/swappiness  

如果是这样,您看到了什么影响。如果我将默认值60替换为30,是否会看到较少的交换和更多的旧缓存重用?是否要降低0或100来减少可交换性并增加缓存的重用性?

最后,有人知道为什么默认设置为60吗?

注意:如果接近0,Linux将更喜欢将应用程序保留在RAM中而不增加缓存。如果接近100,Linux将更愿意交换应用程序,并尽可能扩大缓存。默认值为60。-感谢您下面的链接3dInfluence。

Answers:


6

编辑:重写了答案,以便我希望它更短更清晰:)

您确实需要了解VM子系统作为一个整体如何工作才能开始调整可调参数,否则您可能会发现没有得到预期的结果。本文是这些设置如何与桌面倾斜一起工作的一个很好的起点。

因此,您的问题更多。Swappiness控制VM子系统何时通过取消映射和分页(也称为交换)来回收进程表页面。此可调参数通过告诉VM子系统在映射到进程页面表的内存的百分比+ swappiness值大于100时寻找要交换的页面来工作。因此,设置为60会使系统开始从进程页面中调出陈旧的页面。表占用的系统内存超过40%时。如果要允许程序使用更多内存以牺牲缓存为代价,则需要降低swappiness值。您还需要查看/ proc / sys / vm / min_free_kbytes和/ proc / sys / vm / vfs_cache_pressure。因为这还将控制要保留多少内存以及缓存的主动性。


@ 3dinfluence-我一直在研究您上面引用的那篇文章。很棒的资源!
Patrick R

1
linuxinsight.com/proc_sys_vm_hierarchy.html将为您提供一两个关于每个可调项功能的句子。但是我从一本名为“ Linux服务器的性能调优”的书中获得了有关交换性工作原理的信息
3dinfluence 2010年

+1感谢3dinfluence。到目前为止,这本书非常有教育意义。
Patrick R

太好了。...您能够提高应用程序的性能吗?
3dinfluence 2010年

我已经能够提高性能。另外,我发现以下命令在tweeking期间有所帮助:#sysctl -w vm.swappiness = 40
Patrick R
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.