很多云服务器(如阿里云)没有开启swap交换分区,安装某些比较占用内存的服务(例如MySQL5.7+、gitlab等)时如果物理内存不够则会安装失败,一种解决方案是购买更大的内存,另一种方案是可以设置交换分区,下面就以阿里云CentOS为例介绍一下增加交换分区的方法。

首先创建一个文件用于swap分区,下面命令可以创建一个4G的文件,时间会稍长,耐心等待一下

dd if=/dev/zero of=/data/swap bs=512 count=8388616

bs*count即为容量,如果需要2G的swap可以使用

dd if=/dev/zero of=/data/swap bs=1k count=2048000

of=后面是创建的文件路径,这里以/data/swap为例,如果创建在其他目录下后续的命令也要修改为自己的目录。

将文件设置为swap分区

mkswap /data/swap

启用swap分区

swapon /data/swap

添加到指令到fstab文件中这样系统引导时会自动启动

echo "/data/swap swap swap defaults    0  0" >> /etc/fstab

查看是否生效可用free -m

如果需要关闭swap分区可以依次执行如下命令

swapoff /data/swap
swapoff -a >/dev/null
rm -rf /data/swap