Linux 设置交换分区

踩过的坑

最近整理 VPS 小鸡,在折腾 Docker Swarm + Traefik 搞属于自己的集群和负载均衡。发现有一两台小鸡总是莫名奇妙地突然跑高,经过排查发现是小鸡内存太小,又没有设置交换分区导致的。

设置交换分区

Swap 分区也称交换区或交换分区,系统在物理内存不够时,将一些暂时用不到的数据放在 Swap 分区,等到需要的时候再将数据加载到内存中。本文主要简单记录下设置交换分区的过程,方便以后查看。

查看交换分区

通过简单的 free -m 命令即可查看机子上的内存和交换分区设置,或者你也可以通过 swapon -s 查看是否有相应的交换分区文件。

创建交换分区

使用 Linux 的 dd 命令可以很快地创建出一个固定大小的文件,后续将该文件作为 Swap 分区。以下命令创建了一个 1GB 大小的名称为 swap 的文件,关于 dd 的更多命令可以百度或者谷歌。

1
dd if=/dev/zero of=/swap count=1024 bs=1M

格式化交换分区

在启用该交换分区前,我们需要格式化该分区,并赋予 root 用户可读写权限。

1
2
chmod 600 /swap
mkswap /swap

开启交换分区

使用 swapon 命令可以启用交换分区,命令行如下。这个时候,再用 free -m 命令查看应该可以看到我们刚创建的交换分区。

1
swapon /swap

开机自启动

修改 /etc/fstab 文件,在文件末尾加上 /swap none swap sw 0 0,保存并退出。之后每次开机系统会自动加载交换分区。