プランのページではRAMが真っ先に書かれていますが、ディスクが満杯になってもサーバーは同じように止まります。"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の4分の1以上を使い、後で見るように、アップデートがさらに多くを使います。
Ubuntuの2.7 GBの一部は簡単に取り戻せました。440 MBは初回起動時のアップデートで残ったパッケージキャッシュで、使っているのは1つなのにカーネルが3つ入っていました。2つのコマンドで使用量は2.16 GBになりました:
sudo apt clean
sudo apt autoremove --purge
Docker:イメージはすぐに積み上がる
Docker自体のインストールで約300 MB増えました。効いてくるのはイメージです。よく使うイメージを8つ、1つずつ取得し、そのたびにディスクがどれだけ増えたかを測りました:
| イメージ | 増えた容量 |
|---|---|
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しか増やさなかったのは、同じDebianのベースをnginx:latestとpostgres:16がすでに持ち込んでいたためです。Alpineベースのイメージはフル版の数分の一の大きさです。node:22だけで1.5 GBあるので、可能ならnode:22-slimかnode:22-alpineでビルドしてください。
イメージはアップデートのたびに積み重なります。docker compose pullのたびに古いバージョンが残るからです。当社のテストサーバーでは、コマンド1つですべて削除できました:
docker system df
docker system prune -a
4.1 GBが回収されたと表示されました。prune -aはどのコンテナにも使われていないイメージをすべて削除するので、スタックが動いている状態で実行してください。--volumesを付けない限り、ボリュームには触れません。
ログ:一晩でディスクを埋めるもの
Dockerはコンテナが出力したものをすべて保存し、既定ではサイズの上限がありません。ヘルスチェックやデバッグモードが出すような短い1行をループで出力するコンテナを動かしました。30秒後、そのログファイルは6 MBになっていました。このペースだと1日に約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はファイルシステムの10分の1にあたる2.3 GBに自身を制限しています。使用量は15 MBでした。
Windows:アップデートには容量が必要
当社のWindows Server 2022イメージは2022年のものだったので、更新しました。最初の累積更新プログラムをインストールしている間に、使用量は12.6 GBから20.8 GBに増え、2回目の後には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 |
どのプランでも長持ちさせるルールは2つです。デプロイ前にコンテナのログに上限を設定すること、そしてバックアップはサーバーのディスクに置かずサーバーの外へコピーすることです。すでにサーバーが満杯なら、ディスクの空き容量を増やすガイドで手順を追って対処できます。メモリ面からのサイズ選びは、VPSに必要なRAMの量をご覧ください。すべてのプランはVPSページにあり、支払いはBase、Ethereum、PolygonのネットワークでUSDT、USDC、ETHを使えます。
コメント
まだコメントはありません。最初になりましょう。