如何在Linux中更改Swappiness值

交换空间是RAM内存已满时使用的硬盘的一部分。交换空间可以是专用交换分区,也可以是交换文件。当Linux系统的物理内存不足时

4 min read
By myfreax
如何在Linux中更改Swappiness值

交换空间是RAM内存已满时使用的硬盘的一部分。交换空间可以是专用交换分区,也可以是交换文件。当Linux系统的物理内存不足时,非活动页面将从RAM移动到交换空间。

Swappiness是Linux内核属性,用于设置从物理内存换出页面到交换空间与从页面缓存中删除页面之间的平衡。它基本上定义了系统多久使用一次交换空间。

本教程介绍了如何在Linux系统上更改swappiness值。包括使用cat命令查看/proc/sys/vm/swappiness文件和sysctl命令确定swappiness值,更改Swappiness值时应取决于您的系统工作负荷和RAM内存的大小,参考我们的内存教程可以更准确定此值。

有swap空间与没有swap交换空间。有足够的可用内存,删除交换空间是否更好? 了解swap交换空间的性能优势 | myfreax
即使仍有可用的RAM,Linux内核也会将几乎从未使用过的内存页移动到交换空间中。将经常使用的数据保留在缓存中,服务器最空闲的时候,这是内核的目标。避免将交换空间设置得太大,中断或响应时间延长。Swap I/O的性能很差。服务器空闲时无法交换内存页,则应调整或禁用Swap。禁用Swap后,OOM杀手可能会抓住你
Free空闲内存与可用内存的区别 | myfreax
有时我们需要准确地知道我们的Linux系统如何使用内存。本文将研究如何使用free命令行程序查看Linux系统上的内存使用情况。我们将清楚地定义Linux系统上空闲Free内存和可用内存之间的区别

查看swappiness值

要检查系统上当前的swappiness值,请使用以下cat命令

cat /proc/sys/vm/swappiness

大多数Linux发行版的默认swappiness值为60:

60

尽管对于大多数用户来说,交换值60是合适的,但在某些情况下,您可能需要设置一个较低的值。可用于确定swappiness值的另一个命令是sysctl

sysctl vm.swappiness
vm.swappiness = 60

更改Swappiness值

Swappiness的值可以在0到100之间。值0指示内核积极避免尽可能使用物理内存。值100将积极地将进程的内存移动交换空间。较低的值将使内核尽可能避免交换,而较高的值意味着内核将尝试更积极地使用交换空间。

访问交换空间比直接访问物理内存要慢得多。较低的swappiness参数值将最有可能改善整体系统性能。对于常规桌面安装,建议值为10。对于大多数数据库服务器,建议将交换值设为0或1。

最佳交换值取决于您的系统工作负荷和RAM内存的大小。您应该以较小的增量调整此参数以找到最佳值。例如,要在运行时将swappiness值设置为10,请以root或具有 sudo权限的用户键入以下命令:

sudo sysctl vm.swappiness=1

要使swappiness参数在重新启动后保持不变,请使用你喜欢的文本编辑器,在本教程中我们将使用vim打开文件/etc/sysctl.conf

sudo vim /etc/sysctl.conf

找到vm.swappiness参数并更改其值。如果此参数不存在,请将以下行添加到文件:

vm.swappiness=1
/etc/sysctl.conf

结论

我们向您展示了如何更改swappiness参数的值。如果您有意见,请在下面发表评论。