套餐页面把内存放在最前面,但磁盘满了同样会让服务器停摆。出现 "No space left on device" 时,无论空闲内存有多少,数据库都会停止写入,网站也会停止响应。只要知道什么在增长,磁盘用量很容易预测。我们用自己的镜像启动了新服务器,把常见的几个"嫌疑对象"逐一测了一遍。
新服务器占用多少
在首次启动后立即测量:
| 系统 | 已用空间 |
|---|---|
| Alpine Linux 3.21 | 153 MB |
| Debian 12 | 1.2 GB |
| Ubuntu 24.04 | 2.7 GB |
| Windows Server 2022 | 14.0 GB |
在 Linux 上,15 GB 的 Nano 从第一天起几乎全部归您使用。Windows 在您安装任何东西之前就占用了 50 GB 的四分之一以上,而且正如下文所示,更新还会占用更多。
Ubuntu 的 2.7 GB 中有一部分很容易收回。440 MB 是首次启动时更新留下的软件包缓存,而且装了三个内核,实际只用一个。两条命令把占用降到了 2.16 GB:
sudo apt clean
sudo apt autoremove --purge
Docker:镜像很快就会堆积
安装 Docker 本身增加了约 300 MB。真正占地方的是镜像。我们依次拉取了八个常用镜像,每拉一个就测一次磁盘涨了多少:
| 镜像 | 增加的空间 |
|---|---|
nginx:alpine | 91 MB |
nginx:latest | 232 MB |
postgres:16 | 501 MB |
python:3.12-slim | 59 MB |
node:22 | 1,564 MB |
mariadb:11 | 437 MB |
wordpress:latest | 960 MB |
redis:7-alpine | 55 MB |
| 合计 | 3.9 GB |
基础相同的镜像会复用基础层,所以 python:3.12-slim 只增加了 59 MB:nginx:latest 和 postgres:16 已经拉来了同一个 Debian 基础。基于 Alpine 的镜像比完整版小好几倍。光是 node:22 就有 1.5 GB,所以能用的话,请基于 node:22-slim 或 node:22-alpine 构建。
镜像会随着更新不断堆积:每次 docker compose pull 都会留下旧版本。在我们的测试服务器上,一条命令就把它们全部删除了:
docker system df
docker system prune -a
它报告回收了 4.1 GB。prune -a 会删除所有没有容器在用的镜像,所以请在您的服务栈运行时执行。除非加上 --volumes,否则不会动卷。
日志:一夜之间填满磁盘的东西
Docker 会保存容器输出的所有内容,默认没有大小上限。我们运行了一个循环打印一行短文本的容器,就像健康检查或调试模式产生的输出那样。30 秒后,它的日志文件达到 6 MB。照这个速度,每天会写约 17 GB,比 Micro 套餐的整块磁盘还大。
在 /etc/docker/daemon.json 中为所有新容器设置上限:
{
"log-driver": "local",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
然后运行 sudo systemctl restart docker 并重新创建容器(docker compose up -d --force-recreate)。已有的容器会保留创建时的设置。设置上限后,同一个测试容器的日志 30 秒后为 4 MB,并且永远不会超过 30 MB。
系统日志本来就有上限:在我们 25 GB 的 Ubuntu 服务器上,journald 把自己限制在 2.3 GB,即文件系统的十分之一。实际只用了 15 MB。
Windows:更新需要空间
我们的 Windows Server 2022 镜像是 2022 年的,所以我们更新了它。安装第一个累积更新期间,占用从 12.6 GB 涨到 20.8 GB,第二个之后达到 24.5 GB。Windows 会保留每个被更新替换的系统文件的旧版本。清理后回到 14.6 GB,用更新后的镜像新建的服务器现在从 14 GB 起步。请至少留出 10 GB 给下一次更新。清理命令见 Windows 更新指南。
怎么选
| 您运行的内容 | 宽裕的磁盘 | 套餐 |
|---|---|---|
| 机器人、VPN、小型静态网站 | 15 GB | Nano,$3/月 |
| 带几个镜像的 Docker 服务栈 | 25 GB | Micro,$5/月 |
| 带数据库和上传文件的 WordPress,多个服务栈 | 35 GB | Small,$8/月 |
| 较大的数据库、大量镜像、本地备份 | 45 GB | Medium,$12/月 |
| Windows Server 2022 | 50–60 GB | Windows-Small,$11/月 |
有两条规则能让任何套餐用得更久:部署前给容器日志设上限;把备份复制到服务器之外,而不是留在它的磁盘上。如果服务器已经满了,我们的释放磁盘空间指南会一步步带您处理。从内存角度选配置,请看 VPS 需要多少内存。所有套餐都在 VPS 页面,支持在 Base、Ethereum 或 Polygon 网络上用 USDT、USDC 或 ETH 付款。
评论
暂无评论。来做第一个吧。