在 CentOS 系统中,**永久开启 Swap(交换分区/交换文件)**通常有两种方式:
✅ Swap 分区(推荐用于新装系统)
✅ Swap 文件(推荐用于已有系统,无需重新分区)
下面分别说明,并重点讲解永久生效的方法。
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
或(更快):
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
free -h
swapon -s
编辑 /etc/fstab:
sudo vi /etc/fstab
在末尾添加:
/swapfile swap swap defaults 0 0
保存后验证:
sudo mount -a
✅ 重启后 Swap 仍然存在。
lsblk
fdisk -l
假设 Swap 分区是 /dev/sda2
sudo mkswap /dev/sda2
sudo swapon /dev/sda2
sudo vi /etc/fstab
添加:
/dev/sda2 swap swap defaults 0 0
查看当前策略:
cat /proc/sys/vm/swappiness
临时修改(重启失效):
sudo sysctl vm.swappiness=10
永久修改:
sudo vi /etc/sysctl.conf
添加或修改:
vm.swappiness = 10
生效:
sudo sysctl -p
✅ 数值越小,越优先使用物理内存(推荐服务器设为 10)
临时关闭:
sudo swapoff -a
永久关闭:
sudo vi /etc/fstab
删除 Swap 相关行即可。
✅ 没写 /etc/fstab
某些文件系统(如 XFS)不支持,建议用 dd
swapon -s
free -h
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
如果你告诉我 CentOS 7 / 8 / Stream / 磁盘情况,我可以给你一条完全匹配你服务器的命令。