如何在CentOS6上添加交换

来自菜鸟教程
跳转至:导航、​搜索

状态: 已弃用

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

原因: CentOS 6 已于 2020 年 11 月 30 日结束生命周期 (EOL) and no longer receives security patches or updates. For this reason, this guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 CentOS 版本。 如果可用,我们强烈建议使用为您正在使用的 CentOS 版本编写的指南。

以下 DigitalOcean 教程可能会立即引起人们的兴趣,因为它概述了在 CentOS 7 服务器上添加交换空间:




关于 Linux 交换

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

但是,交换确实有缺点。 由于硬盘的内存比 RAM 慢得多,因此服务器性能可能会大大降低。 此外,如果系统因太多文件被换入和换出而被淹没,则可能会开始发生交换抖动。

笔记

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

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


检查交换空间

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

swapon -s

如果没有返回,则摘要为空且不存在交换文件。

检查文件系统

在我们知道我们没有启用交换文件之后,我们可以使用 df 命令检查服务器上有多少空间。 交换文件将占用 512MB——因为我们只使用了大约 7% of /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”指定文件名。 在这种情况下,名称是交换文件。

随后我们将通过创建一个 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 之间的值。 Swappiness 接近 100 意味着操作系统将频繁且通常过早地进行交换。 尽管交换提供了额外的资源,但 RAM 比交换空间快得多。 每当有东西从 RAM 移动到交换空间时,它都会变慢。

swappiness 值为 0 意味着操作仅在绝对需要时才依赖交换。 我们可以使用 sysctl 命令来调整 swappiness:

<pre>sysctl vm.swappiness=10</pre>
<pre>vm.swappiness=10</pre>

如果我们再次检查系统交换性,我们可以确认设置已应用:

<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>

埃特尔·斯维尔德洛夫