在 1GB 内存的云服务器上跑 Ubuntu Server,核心原则就一个:别碰桌面环境,选 LTS 版本,配合最小化安装。
直接给结论:
首选 Ubuntu 20.04 LTS (Focal Fossa) 或 22.04 LTS (Jammy Jellyfish) 的 Minimal/Server 版。
如果机器特别老或者你追求极致的低负载,Ubuntu 18.04 LTS 依然是个稳妥的备选(但注意它即将在 2023 年结束标准支持,扩展支持到 2028,目前用问题不大,但新业务建议上 20.04+)。
为什么这么选?
1. 版本选择:LTS 是底线
- 不要选非 LTS 版本(如 21.10, 23.04 等):生命周期短,更新频繁,对于 1G 小内存来说,频繁的后台更新和依赖包变动会增加维护成本和不可控因素。
- 20.04 vs 22.04:
- 20.04:非常成熟,内核较旧但极其稳定,对老旧硬件兼容性极好,社区资源海量。很多老教程、脚本都是基于 20.04 写的。
- 22.04:最新的主流 LTS,内核更新,软件包版本更现代(比如 Python 3.10, GCC 11 等)。如果你要跑较新的开发工具链(如 Node.js 新版本、Go 语言等),22.04 体验更好。
- 24.04:刚出不久,虽然也是 LTS,但在 1G 这种极限配置下,建议再观望一下社区反馈,避免踩坑。
2. 安装镜像:必须选 “Minimal” 或纯 “Server”
这是最关键的一点!
- 默认 Desktop 版:自带 GNOME/KDE 桌面、浏览器、办公套件等,启动就吃掉 500MB+ 内存,直接把你逼死。
- Server 版(默认):没有图形界面,只有命令行。但默认安装可能还是会装一些你不需要的服务(如 CUPS 打印服务、ModemManager 等)。
- Minimal 版(推荐):只包含最核心的系统组件。你可以手动按需安装软件。这才是 1G 内存的“正确打开方式”。
操作提示:在下载 Ubuntu ISO 时,选择 “Ubuntu Server” 或 “Ubuntu Minimal”。如果使用云厂商控制台创建实例,通常可以直接选择“无图形界面”或“基础系统”选项。
3. 实际运行表现与优化建议
在 1GB 内存上,即使是最轻量的 Ubuntu Server,也要做好以下优化:
✅ 必做:开启 Swap(交换空间)
1GB 物理内存对于 Linux 来说非常紧张,尤其是当你运行数据库、Web 服务器或多容器时,极易 OOM(Out of Memory)。
- 创建 2GB Swap 文件:
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 写入 fstab 开机自动挂载 echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab - 调整 Swappiness:让系统更倾向于使用物理内存,而不是频繁读写磁盘。
sudo sysctl vm.swappiness=10 # 永久生效,修改 /etc/sysctl.conf 添加 vm.swappiness=10
✅ 清理不必要的服务
安装完系统后,禁用不用的服务以释放内存:
# 停止并禁用蓝牙、打印服务等(根据实际需求)
sudo systemctl disable bluetooth
sudo systemctl disable cups
sudo systemctl stop bluetooth
sudo systemctl stop cups
✅ 监控内存使用
推荐使用轻量级监控工具,避免安装重型 Agent:
htop:比top更直观,方便查看哪个进程占内存。free -h:快速查看内存状态。smem:更准确地显示进程真实内存占用(包括共享库)。
✅ 应用层优化
- Web 服务器:Nginx + PHP-FPM 比 Apache 更省内存。Node.js 应用建议使用 PM2 管理,并设置合理的最大内存限制。
- 数据库:MySQL/MariaDB 在 1G 内存上会非常吃力,务必调整
innodb_buffer_pool_size为总内存的 25%-30%(即 256MB-300MB)。或者考虑使用 SQLite 替代小型 MySQL。 - Docker:如果要用 Docker,注意每个容器都会消耗额外内存。建议限制容器内存使用上限(
--memory参数),并定期清理未使用的镜像和容器。
总结
| 项目 | 推荐配置 |
|---|---|
| 操作系统 | Ubuntu 20.04 LTS 或 22.04 LTS |
| 安装类型 | Minimal / Server(无 GUI) |
| Swap | 必须开启,建议 2GB |
| 适用场景 | 个人博客、小型 API 服务、学习测试、轻量级微服务 |
| 不适用场景 | 大型网站、高并发应用、机器学习训练、多数据库实例 |
最后提醒:1GB 内存的云主机适合“轻业务”。如果你的应用需要常驻多个服务(如 Nginx + MySQL + Redis + App),建议升级到 2GB 或 4GB 内存,否则你会花大量时间调优和解决 OOM 问题,性价比反而更低。
云技术博客