添加 Swap 虚拟内存
给小内存 VPS 添加 Swap 交换文件,缓解内存不足导致的进程被杀(OOM),并设置开机自动挂载。
适用系统UbuntuDebianCentOS需要 root / sudo
功能简介
- 创建一个 Swap 交换文件作为「虚拟内存」
- 设置开机自动挂载,重启后依然生效
- 适合 1G/2G 小内存服务器编译、跑数据库等场景救急
一键执行命令
先确认还没有 swap
执行 free -h,若 Swap 一行已有数值,说明已存在,按需调整而非重复添加。
bash
# 1. 创建 2G 交换文件(按需把 2G 改成你要的大小)
sudo fallocate -l 2G /swapfile || sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
# 2. 收紧权限并格式化为 swap
sudo chmod 600 /swapfile
sudo mkswap /swapfile
# 3. 启用
sudo swapon /swapfile
# 4. 写入 /etc/fstab,开机自动挂载
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab可选:降低 swappiness(更倾向用物理内存,减少不必要的换页):
bash
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p验证安装
bash
free -h # Swap 一行应出现对应大小
swapon --show # 列出已启用的 swap注意事项
- ⚠️ Swap 是「拿磁盘当内存」,速度远低于物理内存,只是救急手段,SSD 上频繁换页也会增加磨损。
- 容器 / 部分云厂商的精简内核可能不支持
fallocate,已在命令里用dd作为兜底。 - 大小建议:物理内存 ≤2G 时设 1–2 倍;内存较大时按需即可。
回滚 / 卸载方案
bash
sudo swapoff /swapfile # 先停用
sudo sed -i '\#/swapfile#d' /etc/fstab # 删除 fstab 中的挂载行
sudo rm -f /swapfile # 删除文件
free -h # 确认 Swap 归零相关链接
- 配套:内核 / 网络优化