创建交换文件
现在我们知道了可用的存储空间,我们可以开始在文件系统中创建一个交换文件。我们将在根目录(/)中创建一个名为 swapfile 的文件,当然,如果你愿意,也可以给文件取其他名字。文件必须分配我们想要的交换文件空间的大小,并且应该在一个连续的块中创建。
最佳的方法是使用 dd 实用程序。以下命令将创建一个 4GB 的文件:
sudo dd if=/dev/zero of=/swapfile count=4096 bs=1MiB
输入密码以授权 sudo 权限后,交换文件将被创建。这可能需要一些时间,然后提示符将返回给你。我们可以使用 ls 命令来验证是否为交换文件保留了正确的空间:
ls -lh /swapfile
-rw-r--r-- 1 root root 4.0G Oct 30 11:00 /swapfile
如你所见,我们的交换文件已经以正确的空间被创建。
启用交换文件
目前,我们的文件已经创建,但系统不知道这个文件应该用作交换空间。我们需要告诉系统将此文件格式化为交换文件,然后启用它。
在这之前,我们应该调整交换文件的权限,以便除了 root 帐户之外的任何人都无法读取。允许其他用户读取或写入此文件将是一个巨大的安全风险。我们可以使用 chmod 来锁定权限:
sudo chmod 600 /swapfile
这将限制只有 root 帐户有读写权限。我们可以再次使用 ls -lh 来验证交换文件是否具有正确的权限:
ls -lh /swapfile
-rw------- 1 root root 4.0G Oct 30 11:00 /swapfile
现在我们的交换文件更加安全,我们可以告诉系统设置交换空间以供使用,输入以下命令:
sudo mkswap /swapfile
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=b99230bb-21af-47bc-8c37-de41129c39bf
我们的交换文件现在已准备好作为交换空间使用。我们可以通过输入以下命令开始使用它:
sudo swapon /swapfile
为了验证该过程是否成功,我们可以检查系统是否报告了交换空间:
swapon -s
Filename Type Size Used Priority
/swapfile file 4194300 0 -1
这个输出确认了我们有一个新的交换文件。我们可以再次使用 free 实用程序来证实我们的发现:
free -m
total used free shared buffers cached
Mem: 3953 315 3637 8 11 107
-/+ buffers/cache: 196 3756
Swap: 4095 0 4095
我们的交换已经成功设置,操作系统将在需要时开始使用它。
使交换文件永久化
目前我们的交换文件已启用,但当我们重新启动时,服务器将不会自动启用该文件以供使用。我们可以通过修改 fstab 文件来改变这一点,这是一个管理文件系统和分区的表格。
使用带有 sudo 权限的文本编辑器编辑文件:
sudo nano /etc/fstab
在文件底部,你需要添加一行,告诉操作系统自动使用你创建的交换文件:
/swapfile swap swap sw 0 0
添加完毕后,保存并关闭文件。服务器将在每次启动时检查此文件,因此交换文件将从现在开始准备供使用。