如何更改Linux系统的Swappiness

Swappiness是内核参数,它定义了Linux内核复制RAM内容以进行交换的频率(以及频率)。此参数的默认值...

什么是Swappiness?

大多数已经安装了发行版的Linux用户必须注意到在分区阶段存在“交换空间”(通常是/ sda5)。 这是您的硬盘驱动器中的专用空间,通常设置为RAM容量的至少两倍,并且它构成系统的总虚拟内存。 不时地,Linux内核通过将RAM中的块转换为交换来利用这个交换空间,允许需要比实际运行的内存更多的内存的活动进程。

Swappiness是内核参数,它定义了Linux内核将RAM内容复制到多少(以及频率)。 此参数的默认值为“60”,可以从“0”到“100”进行任何操作。 swappiness参数的值越高,内核将会更积极地交换。

为什么要改变它?

默认值是一个一对一的解决方案,在所有个别用例,硬件规格和用户需求中都不可能同样有效。 此外,系统的易用性是确定操作系统的整体功能和速度性能的主要因素。 也就是说,了解swappiness是如何工作的,以及该元素的各种配置如何可以改善系统的操作,从而改善您的日常使用体验,这一点非常重要。

由于RAM内存比以往更大,更便宜,现在有很多用户拥有足够的内存,几乎不需要使用交换文件。 从中得出的明显好处是没有任何系统资源被交换过程所占据,并且缓存的文件不会被从RAM中前后移动到互换,反之亦然。

怎么改呢?

swappiness参数值存储在位于/ proc / sys / vm中的简单配置文本文件中,并命名为“swappiness”。 如果您通过文件管理器导航,您将可以找到该文件并将其打开以检查系统的swappiness。 您还可以通过键入以下命令来检查它或通过终端进行更改(即更快):“sudo sysctl vm.swappiness = 10”或“0”和“100”之间的任何值,而不是值“10”我用了。 为了确保swappiness值正确更改为所需的值,只需在终端上键入:“cat / proc / sys / vm / swappiness”,并输出活动值。

此更改在系统的操作中立即生效,因此不需要重新启动。 实际上,重新启动会将swappiness恢复到默认值(60)。 如果您已经彻底测试了所需的交换值,并发现它可靠地工作,您可以通过导航到另一个文本配置文件的/etc/sysctl.conf来使永久性更改。 您可以以root用户(管理员)身份打开此文件,并在底部添加以下行以确定swappiness:vm.swappiness =“您的愿望值在这里”。 然后,保存文本文件,你完成了!

考虑因素

在改变你的设置时,应该考虑一些关于swappiness的数学问题。 参数值设置为“60”表示当RAM达到40%容量时,内核将交换。 将其设置为“100”表示您的内核将尝试交换所有内容。 将其设置为10(就像我在本教程中所做的那样)意味着当RAM为90%满时,将使用交换,因此如果您有足够的RAM内存,这可能是一个安全的选项,可以轻松提高系统的性能。

一些用户虽然想要完整的蛋糕,这意味着他们将交换设置为“1”甚至“0”。 “1”是最小可能的“主动交换”设置,而“0”表示完全禁用交换,只有当RAM完全充满时才恢复。 虽然这些设置在理论上仍然可以工作,但在2GB RAM或更低的低规格系统中进行测试可能会导致冻结并使操作系统完全无响应。 一般来说,发现整体系统性能和响应延迟之间的黄金意味着什么需要相当一些实验(一如既往)。