方案頁面把記憶體放在最前面,但磁碟滿了同樣會讓伺服器停擺。出現 "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 付款。
評論
目前還沒有評論。歡迎成為第一位。