Linux 开启 Swap
6
2026-01-12
Linux 开启 Swap
很多云主机/新装系统默认不启用 Swap,需要手动开启。
下面用Swap 文件的方式(更通用、改动小),并把 vm.swappiness 固定为 60。
1)查看当前是否有 Swap
swapon --show
free -h
cat /proc/sys/vm/swappiness
2)创建并启用 Swap 文件(推荐)
下面以 8G 为例(想要 4G/16G 自行改数字)。
# 创建 8G swap 文件(优先 fallocate;不支持就自动回退到 dd)
sudo fallocate -l 8G /swapfile || sudo dd if=/dev/zero of=/swapfile bs=1M count=8192 status=progress
# 权限必须收紧(安全要求)
sudo chmod 600 /swapfile
# 格式化为 swap 并启用
sudo mkswap /swapfile
sudo swapon /swapfile
# 验证
swapon --show
free -h
3)设置开机自动启用(fstab)
# 避免重复写入
grep -q '^/swapfile ' /etc/fstab || echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
4)设置 vm.swappiness=60(永久生效)
swappiness 范围是 0~100:值越低越少用 Swap,值越高越积极使用 Swap。
# 永久生效(推荐写到 sysctl.d)
echo 'vm.swappiness=60' | sudo tee /etc/sysctl.d/99-swappiness.conf
sudo sysctl --system
# 验证
sysctl vm.swappiness
5)一键版(整段复制即可)
swapon --show || true
free -h
cat /proc/sys/vm/swappiness
sudo fallocate -l 8G /swapfile || sudo dd if=/dev/zero of=/swapfile bs=1M count=8192 status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
grep -q '^/swapfile ' /etc/fstab || echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
echo 'vm.swappiness=60' | sudo tee /etc/sysctl.d/99-swappiness.conf
sudo sysctl --system
swapon --show
free -h
sysctl vm.swappiness
6)关闭/移除 Swap(需要时)
# 关闭
sudo swapoff /swapfile
# 移除开机配置
sudo sed -i.bak '\|^/swapfile |d' /etc/fstab
# 删除文件
sudo rm -f /swapfile