Ubuntu / Debian 配置 Swap 完整指南
什么是 Swap?
Swap(交换空间)是硬盘上的一块空间,当系统内存(RAM)不足时,Linux 会将暂时不用的数据移到 Swap 中,以避免因内存耗尽导致程序崩溃或系统被 OOM Killer 杀死。
优点
- 防止内存不足导致服务崩溃
- 提高小内存 VPS 的稳定性
- Docker、MySQL、Node.js、Java 等程序更容易正常运行
缺点
- Swap 位于硬盘上,速度远低于内存
- 频繁使用 Swap 会降低性能
因此:
Swap 的作用是提高系统稳定性,而不是替代内存。
查看当前内存和 Swap 状态
查看内存:
free -h
查看 Swap:
swapon --show
创建 2GB Swap
1. 创建 Swap 文件
创建一个 2GB 的 Swap 文件:
sudo fallocate -l 2G /swapfile
如果提示 fallocate 不支持:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
说明:
2G表示 2GB/swapfile为 Swap 文件名称
2. 设置权限
Swap 文件必须仅允许 root 访问:
sudo chmod 600 /swapfile
验证:
ls -lh /swapfile
输出类似:
-rw------- 1 root root 2.0G ...
3. 格式化 Swap 文件
将普通文件转换为 Swap 格式:
sudo mkswap /swapfile
成功后会显示:
Setting up swapspace version 1
4. 启用 Swap
立即启用:
sudo swapon /swapfile
5. 验证是否生效
查看:
swapon --show
正确输出类似:
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -2
以及:
free -h
例如:
total used free
Mem: 403Mi 173Mi 12Mi
Swap: 2.0Gi 0.0Ki 2.0Gi
说明 Swap 已正常工作。
设置开机自动加载
编辑系统挂载配置:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
验证:
grep swapfile /etc/fstab
输出:
/swapfile none swap sw 0 0
说明系统重启后会自动启用 Swap。
优化 Swap 使用策略
查看当前参数:
cat /proc/sys/vm/swappiness
通常默认:
60
对于 VPS 或服务器,推荐设置:
sudo sysctl vm.swappiness=10
永久生效:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
验证:
cat /proc/sys/vm/swappiness
输出:
10
删除 Swap(如需重建)
先关闭:
sudo swapoff /swapfile
删除文件:
sudo rm /swapfile
编辑:
sudo nano /etc/fstab
删除这一行:
/swapfile none swap sw 0 0
保存退出即可。
推荐配置
| 物理内存 | 推荐 Swap |
|---|---|
| 512MB | 1~2GB |
| 1GB | 1~2GB |
| 2GB | 2GB |
| 4GB | 2~4GB |
| 8GB+ | 2~8GB |
你的服务器配置
当前检测:
内存:403MiB
Swap:2GiB
配置结果:
✅ 已成功创建 2GB Swap
✅ 已启用 Swap
✅ 适合 512MB VPS 使用
✅ 建议额外设置:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
这样能够减少对 Swap 的依赖,提高系统响应速度。
