【帮助中心】Linux Swap 虚拟内存配置教程,低配置云服务器扩容内存

2026-10-14 04:49:46丨 发布者:云天域--技术

部分低配云服务器内存较小,运行网站、数据库时容易出现内存耗尽,进程被系统 OOM 机制强制终止,网站异常。Swap 就是虚拟内存,把磁盘空间临时充当内存使用,当物理内存占满后,系统会将部分数据写入 swap,避免程序崩溃。

一、查看当前内存与 Swap 状态

free -h

输出中 Swap 一行,如果显示 0,代表服务器未配置虚拟内存。

二、创建 swap 文件(示例 2G 大小 swap)

# 创建2G大小的swap文件
dd if=/dev/zero of=/swapfile bs=1M count=2048
# 设置swap文件权限
chmod 600 /swapfile
# 格式化为swap
mkswap /swapfile
# 启用swap
swapon /swapfile

三、设置开机自动挂载 swap

编辑 /etc/fstab 文件

vi /etc/fstab

在文件末尾增加一行:

/swapfile swap swap defaults 0 0

保存退出,重启服务器后 swap 自动生效。

四、关闭 swap(如需删除)

swapoff /swapfile
rm -f /swapfile

同时删除 /etc/fstab 里面对应的配置行。

五、调整 swappiness 参数(可选优化)

swappiness 控制系统使用 swap 的倾向,数值 0~100,建站推荐设置 10

# 临时修改
sysctl vm.swappiness=10
# 永久修改,编辑sysctl.conf
vi /etc/sysctl.conf
# 添加 vm.swappiness=10,保存后生效
sysctl -p

六、注意事项

  1. Swap 使用磁盘,速度远慢于物理内存,不能替代真实内存,只能临时缓解内存压力
  2. SSD 云盘建议使用 swap;机械盘不建议配置 swap,IO 性能差容易卡顿
  3. 不要设置过大 swap,一般建议为物理内存的 1~2 倍即可
  4. 云服务器如果本身有独立 swap 分区,不要重复创建 swapfile

七、常见问题

  1. dd 命令创建失败:检查磁盘剩余空间是否充足
  2. 开机不自动加载 swap:检查 fstab 配置,路径拼写不能出错
  3. 数据库等高 IO 业务,优先升级物理内存,不要完全依赖 swap

总结

对于 1G、2G 等小内存云服务器,配置 swap 可以防止内存溢出导致网站、数据库意外退出。swap 仅作为应急方案,如果业务长期内存占用高,建议升级云服务器内存规格。