如何在Ubuntu 12.04上添加交换

Linux交换允许系统利用比最初物理可用的更多的内存。这里是如何在Ubuntu 12.04上设置一个linux交换文件

关于Linux交换

Linux RAM由称为页的内存块组成。 要释放RAM的页面,可能会发生“linux swap”,并将一页内存从RAM复制到硬盘上的预配置空间。 Linux交换允许系统利用比最初物理可用的更多的内存。

然而,交换确实有缺点。 因为硬盘的内存比RAM慢得多,虚拟专用服务器的性能可能会大大降低。 此外,如果系统从太多的文件被交换进来,swap thrashing可以开始发生。

注意

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

如果您需要提高服务器的性能,我们建议您升级您的Droplet。 这将导致一般更好的结果,并将降低可能影响您的服务的硬件问题的可能性。

检查交换空间

在继续设置交换文件之前,我们需要通过查看交换使用的摘要来检查是否在VPS上启用了任何交换文件。

sudo swapon -s

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

Filename				Type		Size	Used	Priority

检查文件系统

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

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

创建和启用交换文件

现在是时候使用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
作者Etel Sverdlov