本文涵盖的 Ubuntu 版本已不再受支持。如果您目前正在运行 Ubuntu 12.04 服务器,我们强烈建议升级或迁移到受支持的 Ubuntu 版本:
原因:
Ubuntu 12.04 已于 2017 年 4 月 28 日到达生命周期终点(EOL),不再接收安全补丁或更新。本指南不再维护。
请参阅:
本指南可能仍然作为参考有用,但可能不适用于其他 Ubuntu 版本。如果有的话,我们强烈建议使用针对您正在使用的 Ubuntu 版本编写的指南。您可以使用页面顶部的搜索功能查找更新版本。
关于 Linux 交换
Linux RAM 由称为页面的内存块组成。为了释放 RAM 页面,可能会发生“Linux 交换”,即将内存页面从 RAM 复制到预先配置的硬盘空间。Linux 交换允许系统利用比原本物理可用的内存更多的内存。
然而,交换也有缺点。由于硬盘比 RAM 的速度慢得多,虚拟专用服务器的性能可能会显著下降。此外,如果系统因交换太多文件而被淹没,交换抖动可能会开始发生。
注意:
尽管通常建议对使用传统旋转硬盘的系统启用交换,但在 SSD 上使用交换可能会导致随着时间的推移硬件退化的问题。因此,我们不建议在 DigitalOcean 或任何其他使用 SSD 存储的提供商上启用交换。这样做可能会影响您和您的邻居的基础硬件的可靠性。
如果您需要提高服务器性能,我们建议升级您的 Droplet。这将在一般情况下带来更好的结果,并减少对可能影响您的服务的硬件问题的贡献的可能性。
检查交换空间
在继续设置交换文件之前,我们需要通过查看交换使用情况摘要来检查 VPS 上是否已启用任何交换文件。
sudo swapon -s
空列表将确认您未启用任何交换文件:
Filename Type Size Used Priority
检查文件系统
在确认虚拟服务器上未启用交换文件后,我们可以使用 df
命令检查服务器上有多少空间。交换文件将占用 256MB,因为我们只使用了大约 8% 的 /dev/sda,所以我们可以继续。
df
文件系统 1K-blocks Used Available Use% Mounted on
/dev/sda 20907056 1437188 18421292 8% /
创建并启用交换文件
现在是时候使用 dd
命令创建交换文件本身了:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k
“of=/swapfile” 指定了文件的名称。在本例中,名称为 swapfile。
接下来,我们将通过创建 Linux 交换区域来准备交换文件:
sudo mkswap /swapfile
结果显示:
Setting up swapspace version 1, size = 262140 KiB no label, UUID=103c4545-5fc5-47f3-a8b3-dfbdb64fd7eb
最后,通过激活交换文件完成操作:
sudo swapon /swapfile
然后,您将能够在查看交换摘要时看到新的交换文件。
swapon -s
Filename Type Size Used Priority /swapfile file 262140 0 -1
此文件将在虚拟专用服务器上持续存在,直到机器重新启动。您可以通过将其添加到 fstab 文件来确保交换是永久的。
打开文件:
sudo nano /etc/fstab
粘贴以下行:
/swapfile none swap sw 0 0
文件中的 Swappiness 应设置为 10。跳过此步骤可能导致性能不佳,而将其设置为 10 将使交换充当紧急缓冲区,防止内存不足崩溃。
您可以使用以下命令执行此操作:
echo 10 | sudo tee /proc/sys/vm/swappiness echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
为了防止文件被全球可读,您应该在交换文件上设置正确的权限:
sudo chown root:root /swapfile sudo chmod 0600 /swapfile