直接给结论:安装一个最基础的 Ubuntu Server(无桌面环境),系统本身占用通常在 4GB – 6GB 左右。但为了后续能正常跑业务、装依赖和留足日志空间,建议至少预留 20GB-30GB,生产环境强烈建议起步 50GB。
别被“基础”两个字忽悠了,咱们从几个维度拆解一下这个账怎么算:
1. 纯裸机安装后的真实占用
如果你只是执行 apt install ubuntu-server 或者下载最小化镜像(Minimal ISO)装完,连 SSH 服务都没开,这时候磁盘占用确实很低。
- 核心系统文件:内核、基础库、udev 等,大概占 2-3GB。
- 包管理器缓存:apt 的 cache 目录默认不删的话会占几百 MB。
- 实际可用空间:装完后,你看到的已用空间大概在 3.5GB – 4.5GB 之间。
注意,这是“刚装好、啥也没干”的状态。
2. 为什么不能只分 5GB?
因为 Linux 不是 Windows,它不像你装个 Office 就完事了。Ubuntu Server 是用来跑服务的,以下几个因素会迅速吃掉你的空间:
- Swap 分区/文件:虽然 SSD 时代 Swap 的重要性下降,但很多部署脚本或数据库(如 MySQL、PostgreSQL)依然推荐配置 Swap。哪怕只给 1GB,你也得预留出来。
- 软件源缓存:当你执行
apt update && apt upgrade时,下载的.deb包会暂存在/var/cache/apt/archives/。一次全量升级可能轻松吃掉 500MB-1GB。 - 日志文件:这是最大的隐形杀手。
/var/log下的 syslog、auth.log、kern.log 等,如果服务器有流量波动或程序报错,几天内就能涨到几百 MB 甚至 GB 级。 - Docker/容器数据:现在谁还不用 Docker?Docker 的 overlay2 存储驱动非常吃空间。一个轻量级的 Nginx 镜像加上容器层,可能就要几百 MB。如果你跑个 Elasticsearch 或者 Java 应用,镜像拉取+运行时的临时文件,空间需求指数级上升。
- 内核更新残留:Ubuntu 每次内核大版本更新,旧内核不会自动删除(除非你手动清理),这会多占几百 MB。
3. 不同场景的磁盘规划建议
| 场景 | 推荐最小磁盘大小 | 理由 |
|---|---|---|
| 极简测试/学习 | 10 GB | 够装系统 + 装几个常用工具 + 跑个 Python 脚本。一旦想装 Docker 或大型语言模型,立刻爆满。 |
| 小型 Web 服务/Nginx XX | 20 GB | 足够容纳系统 + 几个容器 + 日常日志。适合个人博客、轻量 API 服务。 |
| 通用开发/CI Runner | 50 GB | 需要频繁拉取 Docker 镜像、编译代码产生大量中间文件。50GB 是“舒适区”的下限。 |
| 生产环境/数据库/大数据 | 100 GB+ | 数据库数据文件增长不可控,日志归档策略复杂,必须预留充足余量以防 OOM 之外的 Disk Full 问题。 |
4. 给云用户的具体操作建议
如果你是在阿里云、腾讯云、AWS 等云厂商上购买 ECS/CVM:
- 不要按当前用量选盘:云硬盘通常支持在线扩容。你可以初始选一个 20GB 或 40GB 的系统盘,后续发现不够了,直接在控制台扩容即可,无需重装系统。
- 区分系统盘和数据盘:
- 系统盘:装 OS 和软件,建议 20-50GB。
- 数据盘:挂载到
/data或/var/lib/docker等路径,专门存业务数据、日志、镜像。这样即使系统盘满了,数据盘还有救,也方便备份和迁移。
- 监控是关键:无论你怎么预估,一定要装监控插件(如 cloud-monitor-agent)。设置磁盘使用率超过 80% 报警。Linux 下磁盘写满会导致文件系统只读(Read-only file system),服务直接挂掉,比内存不足更麻烦。
总结
“够用”的定义取决于你要跑什么。
如果只是 ping 和 cat /etc/os-release,4GB 够了。
如果要跑任何正经服务,请至少分配 20GB,最好 50GB。省这点云服务器的钱,后期折腾扩容、清理日志的时间成本远高于磁盘差价。
云技术博客