跳到主要内容

主机资讯与使用指南

Ubuntu 添加 Swap 教程:小内存 VPS 的交换文件设置

在 Ubuntu 普通 ext4 文件系统上建立 Swap 文件,检查启用、开机配置和内存使用,说明与真实内存的区别。

先看是否已有 Swap

应用因内存不足退出时,可以先查看内存、Swap 和系统日志。Swap 用磁盘保存部分暂时不用的内存页,可以缓解短时压力,但频繁交换会增加磁盘访问。

free -h
swapon --show
df -h /
findmnt -no FSTYPE /

下文按 Ubuntu、普通 ext4 文件系统和 sudo 权限编写,示例增加 2GB。已有交换文件可以先保留并评估,不重复创建同一路径;Btrfs 与受限制的容器环境按各自方式配置。

建立新文件

确认 /swapfile 不存在且磁盘有足够空间后执行。dd 用零填充创建文件,避免稀疏文件不适合作为交换区。

if sudo test -e /swapfile; then
  echo "交换文件已存在,停止创建"
else
  sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress &&
  sudo chmod 600 /swapfile &&
  sudo mkswap /swapfile &&
  sudo swapon /swapfile
fi

文件已存在时会停止创建,不会格式化已有文件。swapon 成功后再配置开机启用,失败则根据提示检查文件系统和权限。

检查并配置开机启用

swapon --show
free -h

确认新文件出现在交换区列表。使用 sudo 编辑 /etc/fstab,只添加一次以下行:

/swapfile none swap sw 0 0

保存后再次检查 fstab 中没有重复路径。后续重启时查看 swapon --show 是否仍显示该文件。

继续查占用内存的应用

如果长期大量使用 Swap,检查哪个程序占用内存,减少并发任务、停止不需要的服务,或升级实例。数据库、浏览器和相册后台任务的内存要求仍需满足。

系统日志中 Out of memory、Killed process 可以帮助判断进程是否被 OOM 杀死;容器还可能有独立内存限制,要同时看容器状态。

不再使用时怎样停用

先确认剩余内存能接回交换区中的数据,再执行 sudo swapoff /swapfile。成功后移除 fstab 对应行,最后删除这个交换文件。

不要先删除启用中的文件,也不要在内存已经耗尽时强行关闭全部 Swap。需要配置选择时,继续看 VPS 内存文章。

相关阅读