我已经看到很多人发布的这是什么一样的主观解释。希望这是一个更完整的答案。
在2.6.28后的拆分LRU上Linux swappiness是一个乘法器,用于任意修改计算的分数,以确定两个LRU中建立的压力。
因此,例如在一个没有剩余空闲内存的系统上 - 您现有内存的价值是根据多少内存被列为“活动”的速率以及页面的频率在进入不活动列表后升级为活动状态。
一个有很多促销/活动和非活动页面降级的LRU有很多用处。
通常文件支持的存储更便宜和更安全,以便在内存用完时自动获得200的修饰符(这使得文件支持的内存比交换支持的内存(其值为0)多200倍,当它乘以这个分数
什么swappiness做的是修改这个值,通过减去你给的swappiness数(默认为60)到文件内存并且增加swappiness的值作为一个倍数给anon memory,因此默认的swappiness离开匿名内存比文件内存高80倍(文件为200-60,匿名内存为0 + 60),因此,在一个典型的使用了所有内存的Linux系统上,页面缓存将不得不超过80倍对匿名我来说比匿名记忆更有效mory将被换出以支持页面缓存。
如果将swappiness设置为100,则会给anon修饰符100和文件内存修饰符100(200 - 100),使两个LRU的权重相等。因此,在一个文件繁重的系统上,想要提供页面缓存的anon内存不如页面缓存那么活跃,那么anon内存将被交换到磁盘以腾出额外页面缓存的空间。
非常丰富。谢谢。 – Zenil
为了记录,交换的金额与您使用交换的频率没有关系。 –