这篇文章介绍了一个已经不再受支持的 CentOS 版本。如果您目前正在运行 CentOS 6 服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。
原因: CentOS 6 已于 2020 年 11 月 30 日达到生命周期终点(EOL),不再接收安全补丁或更新。因此,此指南不再维护。
请查看: 此指南可能仍然有用作参考,但可能无法在其他 CentOS 版本上工作。如果有可用的,我们强烈建议使用为您当前使用的 CentOS 版本编写的指南。
以下 DigitalOcean 教程可能立即引起您的兴趣,因为它概述了在 CentOS 7 服务器上添加交换空间:
- [如何在 CentOS 7 上添加交换空间](https://andsky.com/tech/tutorials/how-to-add-swap-on-centos -7)
Linux 交换概述
Linux RAM 由称为页面的内存块组成。为了释放 RAM 页,可以进行"linux 交换",并将内存页从 RAM 复制到硬盘上预配置的空间。Linux 交换允许系统利用比最初物理可用的更多内存。
然而,交换也有缺点。由于硬盘具有比 RAM 慢得多的内存,服务器性能可能会显著降低。此外,如果系统由于过多文件被交换进出而负担过多,可能会开始出现交换抖动。
注意
尽管建议使用传统的旋转硬盘系统使用交换空间,但使用固态驱动器 (SSD) 的交换空间可能会导致硬件随时间退化的问题。考虑到这一点,我们不建议在 DigitalOcean 或任何其他使用固态存储的提供商上启用交换空间。这样做会影响您和您的邻居的底层硬件的可靠性。
如果您需要提高服务器的性能,我们建议升级您的 Droplet。这通常会带来更好的结果,并有助于减少导致可能影响您的服务的硬件问题的可能性。
检查交换空间
在我们继续设置交换文件之前,我们需要查看交换使用情况的摘要,看看是否启用了任何交换文件。
1swapon -s
如果没有返回任何内容,则摘要为空,没有交换文件存在。
检查文件系统
在我们知道没有启用交换文件后,我们可以使用 df
命令检查服务器上有多少空间。交换文件将占用 512MB - 由于我们只使用了约 7% 的 /dev/hda,因此我们可以继续进行。
1df
2Filesystem 1K-blocks Used Available Use% Mounted on
3/dev/hda 20642428 1347968 18245884 7% /
创建并启用交换文件
现在是时候使用 dd 命令创建交换文件本身了:
1sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k
"of=/swapfile"指定了文件的名称。在这种情况下,文件名为 swapfile。
接下来,我们将通过创建一个 linux 交换区域来准备交换文件:
1sudo mkswap /swapfile
结果显示:
1Setting up swapspace version 1, size = 536866 kB
最后激活交换文件:
1sudo swapon /swapfile
之后,您将能够在查看交换摘要时看到新的交换文件。
1swapon -s
2Filename Type Size Used Priority
3/swapfile file 524280 0 -1
此文件将持续存在于服务器上,直到机器重新启动。您可以通过将其添加到 fstab 文件来确保交换空间永久存在。
打开文件:
1sudo nano /etc/fstab
粘贴以下一行:
1/swapfile swap swap defaults 0 0
为了防止文件被设置为全局可读权限,您应该在交换文件上设置正确的权限:
1chown root:root /swapfile
2chmod 0600 /swapfile
如何配置交换倾向性
操作系统内核可以通过一个称为 swappiness 的配置参数来调整它依赖于交换空间的频率。
要找到当前的交换倾向性设置,请键入:
1cat /proc/sys/vm/swappiness
260
交换倾向性可以是 0 到 100 之间的值。接近 100 的交换倾向性意味着操作系统将经常交换,通常太早交换。尽管交换提供了额外的资源,但 RAM 比交换空间快得多。任何东西从 RAM 移动到交换空间时,它都会变慢。
0 的交换倾向值意味着只有在绝对需要时操作系统才会依赖交换空间。我们可以使用 sysctl
命令调整交换倾向性:
1sysctl vm.swappiness=10
2vm.swappiness=10
如果我们再次检查系统的交换倾向性,我们可以确认设置已应用:
1cat /proc/sys/vm/swappiness
210
要使您的 VPS 在每次启动时自动应用此设置,您可以将设置添加到 /etc/sysctl.conf
文件中:
1sudo nano /etc/sysctl.conf
2# 搜索 vm.swappiness 设置。取消注释并根据需要进行更改。
3vm.swappiness=10
作者:Etel Sverdlov