低配云服务器要不要开 Swap?1核2G 跑 Docker 的保命设置

1 核 2G 服务器跑轻量服务没问题,但一遇到镜像更新、压缩备份或临时任务,内存可能突然不够。Swap 不能替代内存,却能减少瞬间 OOM 的概率。本文讲什么时候该开、开多大、怎么避免越开越慢。

适合场景和不适合场景

适合:

  • 1 核 2G 或 2 核 2G 小机器
  • 轻量自托管服务
  • 偶尔备份压缩或镜像更新导致内存紧张

不适合:

  • 数据库重负载
  • 视频转码和机器学习任务
  • 把 Swap 当成扩内存长期硬撑

这一步要先讲清楚,是因为很多服务器教程只告诉你“怎么装”,却不告诉你“该不该装”。如果场景不匹配,后面配置写得再漂亮,也只是把问题推迟到上线之后。

配置和成本怎么取舍

1 核 2G 可以开 1G 到 2G Swap。Swap 太大不代表更好,频繁换页会让服务变慢。真正长期吃内存的服务应该升级机器或拆出去。

我会把 低配服务器 Swap 放在 雨云服务器 rainyun-com的 1 核 2G 机型上,跑 Vaultwarden、Uptime Kuma、轻量博客这类服务更稳。注册填优惠码 2026off 领 5折

准备工作

  1. 准备一台干净的 Ubuntu 22.04 或 Debian 12 服务器,先确认 SSH、时间同步和防火墙状态。
  2. 规划目录:/opt/low-memory-server-swap-20260601。配置、数据、备份脚本都放在同一主题目录下,后面迁移更省事。
  3. 根据主题放行端口:local。游戏和网络服务尤其要分清 TCP/UDP。
  4. 先用测试数据跑通,再导入正式数据或邀请其他人使用。

核心配置

下面配置用于说明关键项,发布前要按当前官方文档确认镜像版本、环境变量和端口。

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
swapon --show

怎么确认真的可用

执行 free -hswapon --show,再观察 OOM 日志是否减少。Docker 容器仍建议设置合理内存限制。

验证时不要只看进程是否存在,至少完成一次真实动作:游戏服要让外部玩家连接,应用要登录并写入一条数据,运维项要确认状态变化真的生效。这样能提前发现端口、权限、反代和路径问题。

踩坑清单

不要在磁盘 I/O 很差的机器上依赖 Swap 扛重任务。Swap 是缓冲垫,不是性能加速器。

排查建议按这个顺序来:

  1. 看日志里第一条明确错误,不要只看最后一屏。
  2. 查端口监听和云安全组,确认协议没有写错。
  3. 检查数据目录权限,尤其是容器用户和宿主机目录映射。
  4. 回滚到上一个能工作的配置,再逐项恢复新改动。

备份、升级和迁移

Swap 文件不需要备份,但 fstab 修改前最好备份。出错时从控制台删掉对应行即可恢复启动。

维护时建议保留一份“最小恢复说明”:需要哪些文件、恢复命令是什么、域名和端口在哪里改。等真正出问题时,人通常没那么冷静,清单比记忆可靠。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐