如何在 CentOS 6 上添加交换

这篇文章介绍了一个已经不再受支持的 CentOS 版本。如果您目前正在运行 CentOS 6 服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。

原因: CentOS 6 已于 2020 年 11 月 30 日达到生命周期终点(EOL),不再接收安全补丁或更新。因此,此指南不再维护。

请查看: 此指南可能仍然有用作参考,但可能无法在其他 CentOS 版本上工作。如果有可用的,我们强烈建议使用为您当前使用的 CentOS 版本编写的指南。

以下 DigitalOcean 教程可能立即引起您的兴趣,因为它概述了在 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

Published At
Categories with 技术
comments powered by Disqus