如何在 Ubuntu 12.04 上添加交换程序

这篇文章涵盖了一个不再受支持的Ubuntu版本。如果您目前正在运行Ubuntu 12.04服务器,我们强烈建议您升级或迁移到受支持的Ubuntu版本:

原因: Ubuntu 12.04于2017年4月28日达到生命周期终点 (EOL),不再接收安全补丁或更新。此指南不再维护。

请查看:
此指南可能仍然有用作参考,但可能无法在其他Ubuntu版本上工作。如果有可用的,我们强烈建议使用为您正在使用的Ubuntu版本编写的指南。您可以使用页面顶部的搜索功能来查找更新的版本。

Linux交换概述

Linux RAM由称为页面的内存块组成。为了释放RAM页面,可以进行"linux交换",并将内存页从RAM复制到硬盘上预配置的空间。Linux交换允许系统利用比最初物理可用的更多内存。

然而,交换也有缺点。由于硬盘比RAM的内存慢得多,虚拟专用服务器的性能可能会大大降低。此外,如果系统因过多文件被交换进出而不堪重负,可能会开始出现交换抖动。

注意

尽管建议使用传统的旋转硬盘系统使用交换空间,但使用固态驱动器 (SSD) 的交换空间可能会导致硬件随时间退化的问题。考虑到这一点,我们不建议在 DigitalOcean 或任何其他使用固态存储的提供商上启用交换空间。这样做会影响您和您的邻居的底层硬件的可靠性。

如果您需要提高服务器的性能,我们建议升级您的 Droplet。这通常会带来更好的结果,并有助于减少导致可能影响您的服务的硬件问题的可能性。

检查交换空间

在我们继续设置交换文件之前,我们需要通过查看交换使用情况的摘要来检查是否在虚拟专用服务器上启用了任何交换文件。

1sudo swapon -s

空列表将确认您没有启用任何交换文件:

1Filename    Type    Size    Used    Priority

检查文件系统

在我们知道没有在虚拟服务器上启用交换文件后,我们可以使用 df 命令检查服务器上有多少空间。交换文件将占用256MB - 由于我们只使用了大约8%的/dev/sda,因此我们可以继续。

1df
2Filesystem 1K-blocks Used Available Use% Mounted on
3/dev/sda 20907056 1437188 18421292 8% /
4udev 121588 4 121584 1% /dev
5tmpfs 49752 208 49544 1% /run
6none 5120 0 5120 0% /run/lock
7none 124372 0 124372 0% /run/shm

创建并启用交换文件

现在是时候使用dd命令创建交换文件本身了:

1sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

"of=/swapfile"指定了文件的名称。在这种情况下,文件名为swapfile。

接下来,我们将通过创建一个linux交换区域来准备交换文件:

1sudo mkswap /swapfile

结果显示:

1Setting up swapspace version 1, size = 262140 KiB
2no label, UUID=103c4545-5fc5-47f3-a8b3-dfbdb64fd7eb

最后激活交换文件:

1sudo swapon /swapfile

之后,您将能够在查看交换摘要时看到新的交换文件。

1swapon -s
2Filename    Type    Size    Used    Priority
3/swapfile file    262140    0    -1

此文件将持续存在于虚拟专用服务器上,直到机器重新启动。您可以通过将其添加到fstab文件来确保交换空间永久存在。

打开文件:

1sudo nano /etc/fstab

粘贴以下一行:

1/swapfile none swap sw 0 0

文件中的交换倾向性应设置为10。跳过这一步可能会导致性能较差,而将其设置为10将使交换空间充当紧急缓冲区,防止内存耗尽导致系统崩溃。

您可以使用以下命令进行设置:

1echo 10 | sudo tee /proc/sys/vm/swappiness
2echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

为了防止文件被设置为全局可读权限,您应该在交换文件上设置正确的权限:

1sudo chown root:root /swapfile
2sudo chmod 0600 /swapfile

作者:Etel Sverdlov

Published At
Categories with 技术
comments powered by Disqus