Linux:配置磁盘交换

时间:2020-01-09 10:41:23  来源:igfitidea点击:

总览

磁盘交换使系统可以将RAM中不太重要,活动较少的页面移动到磁盘上,以释放空间以供更多活动的进程使用。当系统安装了非常少量的RAM以改善用户体验时,或者当用户运行多个应用程序时,这是理想的选择。

对于大多数台式机而言,主动交换是首选,因为我们要确保最活跃的应用程序(无论是Firefox还是最新的游戏)对我们的物理内存具有垄断地位,并始终可以访问未使用的内存。

但是,对于大多数服务器而言,情况恰恰相反。我们要做的最后一件事是交换到磁盘,除非绝对必要。通常,我们正在运行的服务并不总是被用户群所利用。看到服务在100%的时间内未激活,Linux将把服务的非活动内存页面交换到磁盘。当用户活动突然激增并且需要将页面重新带回活动内存时,这将成为问题。

幸运的是,Linux允许我们配置应多久将页面交换到磁盘一次。我们可以根据可用内存的百分比来设置值。默认值为60,这意味着当系统的可用内存降至60%时,操作系统将开始交换。

对于服务器,我们希望将数字调低到0到5之间。不总是建议绝对不为零。如果服务器突然收到大量请求,可能会导致服务器崩溃,从而导致系统耗尽物理内存。理想情况下,我建议将值设置为5. 当突然的,意外的电涌发生时,它为我们提供了喘息的空间。

设置Swappiness值

Swappiness是Linux系统控件用来设置将内存页交换到磁盘时的值。

  • 在文本编辑器(例如Nano)中打开系统控制配置文件。
nano /etc/sysctl.conf
  • 将以下行添加到文件中。我们可以将" 0"值修改为适合需要。
vm.swappiness = 0
  • 保存更改并退出文本编辑器。

修改sysctl.conf文件时要小心,因为更改将立即生效。始终检查我们所做的更改,以确保正确设置了选项。

这是一些更常用的值。

效果
60默认值。这通常建议用于桌面部署,不过我们可以根据需要调整它的上限或者下限
5适用于服务器。这指示Linux除非有5%或者更少的可用物理内存,否则不要交换。确保swap valume的磁盘没有太多其他I/O请求的负担,以确保可以写入内存页
0适用于某些服务器。这指示Linux除非发生内存不足错误,否则不要交换。除非保存交换卷的磁盘能够快速响应交换请求,否则不应使用此值。如果卷位于已被大量访问的磁盘上,则系统可能没有足够的时间将页从内存交换到磁盘,从而导致服务器挂起