如何在 CentOS 6 上添加 Swap
状态:已弃用
本文涵盖不再受支持的 CentOS 版本。如果您当前正在运行运行 CentOS 6 的服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。
原因:
请参阅:
以下 DigitalOcean 教程可能会立即引起您的兴趣,因为它概述了在 CentOS 7 服务器上添加交换空间:
- 如何在 CentOS 7 上添加 Swap
关于 Linux 交换
Linux RAM 由称为页面的内存块组成。为了释放 RAM 页面,可能会发生“Linux 交换”,并将内存页面从 RAM 复制到硬盘上的预配置空间。Linux 交换允许系统利用比最初可用的物理内存更多的内存。
但是,交换也有缺点。由于硬盘的内存比 RAM 慢得多,因此服务器性能可能会大大降低。此外,如果系统因换入和换出太多文件而变得不堪重负,就会开始发生交换抖动。
尽管通常建议对使用传统旋转硬盘驱动器的系统进行交换,但将交换与 SSD 一起使用可能会导致硬件性能随着时间的推移而退化。出于这一考虑,我们不建议在 DigitalOcean 或任何其他使用 SSD 存储的提供商上启用交换。这样做会影响您和您的邻居的底层硬件的可靠性。
如果您需要提高服务器性能,我们建议升级您的 Droplet。这通常会带来更好的结果,并会降低导致可能影响您的服务的硬件问题的可能性。
检查交换空间
在我们继续设置交换文件之前,我们需要通过查看交换使用摘要来检查是否已启用任何交换文件。
swapon -s
如果未返回任何内容,则摘要为空且不存在交换文件。
检查文件系统
在我们知道我们没有启用交换文件之后,我们可以使用 df
命令检查服务器上有多少空间。交换文件将占用 512MB——因为我们只使用了大约 7% 的 /dev/hda,我们可以继续。
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda 20642428 1347968 18245884 7% /
创建并启用交换文件
现在是时候使用 dd 命令创建交换文件本身了:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k
\of=/swapfile 指定文件的名称。在这种情况下,名称是 swapfile。
随后我们将通过创建一个 linux 交换区域来准备交换文件:
sudo mkswap /swapfile
结果显示:
Setting up swapspace version 1, size = 536866 kB
通过激活交换文件来完成:
sudo swapon /swapfile
然后,您将能够在查看交换摘要时看到新的交换文件。
swapon -s
Filename Type Size Used Priority
/swapfile file 524280 0 -1
该文件将保留在服务器上,直到机器重新启动。您可以通过将交换添加到 fstab 文件来确保交换是永久性的。
打开文件:
sudo nano /etc/fstab
粘贴以下行:
/swapfile swap swap defaults 0 0
为防止文件对所有人都可读,您应该为交换文件设置正确的权限:
chown root:root /swapfile
chmod 0600 /swapfile
如何配置交换性
操作系统内核可以通过称为 swappiness 的配置参数调整它依赖交换的频率。
要查找当前的 swappiness 设置,请键入:
<pre>cat /proc/sys/vm/swappiness</pre>
<pre>60</pre>
Swapiness 可以是 0 到 100 之间的一个值。接近 100 的 Swappiness 意味着操作系统将经常交换,而且通常交换得太快。尽管交换提供了额外的资源,但 RAM 比交换空间快得多。任何时候将某些东西从 RAM 移动到交换区时,它都会变慢。
swappiness 值为 0 意味着操作将仅在绝对需要时依赖交换。我们可以使用 sysctl
命令调整 swappiness:
<pre>sysctl vm.swappiness=10</pre>
<pre>vm.swappiness=10</pre>
如果我们再次检查系统 swappiness,我们可以确认设置已应用:
<pre>cat /proc/sys/vm/swappiness</pre>
<pre>10</pre>
要使您的 VPS 在每次启动时自动应用此设置,您可以将设置添加到 /etc/sysctl.conf
文件中:
<pre>sudo nano /etc/sysctl.conf</pre>
<pre># Search for the vm.swappiness setting. Uncomment and change it as necessary.
vm.swappiness=10</pre>