Centos7调整swap分区

时间:2021-11-24 02:38:48

如何让服务器响应更快?如何避免应用出现内存不足的错误?最简单的方法就是增加交换空间。Swap是存储盘上的一块自留地,操作系统可以在这里暂存一些内存里放不下的东西。

这从某种程度上相当于增加了服务器的可用内存。虽然从swap读写比内存慢,但总比没有好,算是内存不够时的安全网。

如果没有swap,则服务器一旦内存不足,就会开始终止应用以释放内存,甚至会崩溃,这会让你丢失一些还没来得及保存的数据,或者造成当机。有些应用明确要求系统配置swap以确保数据访问的可靠性。

本文介绍如何在CentOS 7服务器上创建并启用swap文件。

注:swap通常在传统机械硬盘上表现更好,在SSD上使用swap可能会造成问题,尤其是硬件老化之后。所以,对于DigitalOcean以及其他使用基于SSD的云主机服务的用户,我们不推荐启用swap。这甚至会影响到跟你的虚拟机共用宿主机的其他用户。

以下是一台Centos7的主机,可以看到物理内存剩余不多了。一个系统可以设置多个swap文件或分区,也可以使用swap -s 当前存储设备上的swap信息。

Centos7调整swap分区

下面来通过增加swap分区来缓解内存不足的情况。

先检查一下磁盘上的可用空间

Centos7调整swap分区

我们使用 fallocate 命令创建一个1G的swap文件

Centos7调整swap分区

启用Swap文件

为了安全,我们修改swap文件的权限,确保只有root才可读

Centos7调整swap分区

使用 mkswap 命令告知系统将该文件用于swap

Centos7调整swap分区

使用 swapon命令将该文件正式用到swap上

Centos7调整swap分区

我们看到上面出问题了,经过查询,错误在于这个块设备的存放路径不对,不能放在/dev下。

我换个系统

Centos7调整swap分区

换了个系统也不行,看来这个问题暂时无解。