low-memory-server-swap-20260601

低配云服务器要不要开 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. 先用测试数据跑通,再导入正式数据或邀请其他人使用。

核心配置

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

bash 复制代码
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 -h 和 swapon --show,再观察 OOM 日志是否减少。Docker 容器仍建议设置合理内存限制。

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

踩坑清单

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

排查建议按这个顺序来:

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

备份、升级和迁移

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

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

相关推荐
七夜zippoe1 小时前
把 OpenClaw Agent 搬进 K8s:容器化部署全记录
ai·云原生·容器·kubernetes·openclaw
骑着蜗牛撵大象3271 小时前
ToolJet + PostgreSQL:后台表格、查询和流程,一次搭成可远程访问的业务系统
数据库·低代码·docker·postgresql·内部工具·tooljet
程序员夏洛2 小时前
TCP 是用来解决什么问题?
java·网络协议·http·https
flytalei2 小时前
从 Docker Compose 到 K3s:逐浪笔记首次完整部署与故障排查实战
笔记·docker·容器
吴声子夜歌3 小时前
Docker入门与实战——高级网络功能
网络·docker
JavaPub-rodert12 小时前
Docker 日志为什么能把磁盘写爆?讲透 json-file、local、journald、日志轮转与 docker logs
docker·eureka·json
人生匆匆13 小时前
docker部署ceph集群
ceph·docker·容器
张张123y16 小时前
后端第九课:部署上线(把你的 FastAPI 后端真正跑起来给别人用)
python·docker·部署·fastapi
AscendKing20 小时前
Docker Compose 一键部署 SkyWalking 10.2.0 + Elasticsearch8.11,分布式链路追踪完整实战
elasticsearch·docker·skywalking·链路追踪·微服务监控
励志师code20 小时前
Kubernetes 集群节点生命周期管理实战:从扩容、调度管控到证书续期
运维·docker·容器·kubernetes·gpu算力·kubelet