「サーバーが遅いから、メモリを倍にしよう」はホスティングでいちばん高くつく反射的な判断です。正しいこともあります。けれど多くの場合、マシンはディスクを待っているか、CPU が張り付いていて、新しいメモリは何もせずに置かれたまま、請求額だけが倍になります。
そこで、誰に 64 GB が必要かを話す前に、本当に足りないものは何かを確かめましょう。用途別の典型的なメモリ量だけ知りたいなら、以前のガイド VPS に必要なメモリ量 に、言語モデル用の計算式も含めてまとめてあります。この記事のテーマは診断です。メモリか、ディスクか、CPU か。
3 つのコマンド、2 分
遅いサーバーで、遅いときに実行してください。何も起きていない朝 4 時ではなく。
free -m
vmstat 1 10
cat /proc/pressure/cpu /proc/pressure/memory /proc/pressure/io
教科書なしで読む方法は次のとおりです。
free -m。free 列は無視してください。Linux は余ったメモリをわざとディスクキャッシュで埋めます。見るべきは available です。2 GB のマシンで数百 MB しか残っておらず、swap の used が増え続けているなら、メモリはぎりぎりです。
vmstat 1 10。4 つの列で大部分がわかります。
| 列 | 意味 | 示すもの |
|---|---|---|
si / so | 1 秒あたりの swap への出入りページ数 | メモリ |
wa | CPU がディスクを待っている時間の割合 | ディスク |
us + sy | CPU が働いている時間の割合 | CPU |
st | ハイパーバイザーがあなたの CPU を他に回した時間の割合 | CPU(vCPU を他と分け合う) |
si/so にたまに非ゼロの値が出るのは普通です。本当のサインは、毎秒続く swap です。
/proc/pressure/*。3 つの中でいちばん正直です。各ファイルは、処理がそのリソース待ちで止まっていた時間の割合を示します。memory の some avg60=25.00 は、直近 1 分間のうち 4 分の 1 の時間、何かがメモリを待っていたという意味です。3 つのうち数字が最も大きいファイルが、あなたのボトルネックです。
ディスクが原因の場合
wa が高く、io のプレッシャーが高く、swap は少ない。よくある原因は、データベースやログの多いアプリが、キャッシュに収まる以上のデータを読んでいることです。
ここで意外な話があります。メモリを増やすと解決することがあります。Linux がより多くのディスクをキャッシュできるからです。データベースが 6 GB で、ホットな部分が 3 GB なら、メモリを 2 GB から 8 GB にするだけでディスクの問題が消えることがあります。しかしデータベースが 300 GB あり、クエリのたびに別の部分を読むなら、現実的な量のメモリではキャッシュしきれません。その場合はインデックスの改善、クエリの縮小、データ構造の見直しが必要です。ここのプランはすべて NVMe なので、遅いのはディスクそのものではなく、たいていアクセスのしかたです。
CPU が原因の場合
us+sy が高く、cpu のプレッシャーがあり、swap はなく、ディスク待ちも少ない。圧縮、ビルド、動画エンコード、画像処理、暗号計算などです。メモリを増やしてもまったく効きません。
st にも注意してください。VPS の vCPU は物理コアの時間の一部であって、コアまるごとではありません。プランの数字は短時間のバースト時の上限で、長時間のフル負荷は、マシン上の全員に公平になるよう制限されることがあります。全コアを何時間も 100% で使う処理なら、それは処理そのものの問題です。大きなプランを買った後ではなく、今のうちに伝えておきたいと考えています。
本当にメモリが原因の場合
続く swap、高まるメモリのプレッシャー、dmesg に出る OOM killer。ここで問うべきは「どれだけ必要か」です。
2 GB で足りる、しかも何年も足りることが多いもの: ボット 1 つか数個、小さな API、VPN、Nginx の後ろの静的サイト、cron で動くスクレイパー数本、監視エージェント。Micro は 2 vCPU、2 GB、25 GB で、NAT なら月 5 ドル、専用 IPv4 付きなら月 10 ドルです。
4〜8 GB は快適な中間: データベース付きの Web アプリ、小さな検索インデックス、ヘッドレスブラウザの自動化、並んで動く 2〜3 個のエージェント。
32〜64 GB は、メモリに常駐させるべきデータ向け:
- 作業セットが数十 GB あるデータベース。キャッシュに本当にホットなデータを載せておくため。
- ディスクにあふれるとすべてが遅くなる、大きなインメモリキャッシュやキュー。
- 何百万もの断片を対象にした検索用のベクトルインデックス(実際の数字は 大規模なセルフホスト RAG にあります)。
- 重みがメモリに収まる必要がある、中規模の言語モデルの CPU 推論。
- 統合:これまで 10 台の小さなサーバーに分かれていた 10 個のサービス。
そのためにあるのが Pro-64 です。12 vCPU、64 GB メモリ、600 GB の NVMe、専用 IPv4 で月 70 ドル。間の段階は月 40 ドルの Pro-32 と月 55 ドルの Pro-48、上には月 90 ドルの Pro-80 があります。Pro プラン で利用できるロケーションは注文時に表示されます。
大きなマシンが向かない場面
払えるとしても、64 GB が間違った答えになる場面が 3 つあります。
GPU を使う処理。これらのプランには GPU がありません。学習や高速な推論に GPU が必要なモデルでも、メモリの多い CPU マシンなら動かせますが、遅く、あなたは忍耐にお金を払うことになります。
長時間フルに CPU を使う処理。先に書いたとおり、vCPU はバースト用の容量です。12 個を 24 時間 100% で回すのは、VPS が想定している使い方ではありません。
そして「念のため」。3 つのコマンドにメモリのプレッシャーが出ないなら、追加の 60 GB は読みもしないファイルのキャッシュになるだけです。小さく始めましょう。同じネットワーク種別の大きいプランへの変更は、再起動 1 回で vCPU、メモリ、ディスクをその場で増やせます。詳しくは プラン変更 をご覧ください。その場で小さくすることはできないので、大きく買いすぎると実際のコストが生じます。縮小するには新しいサーバーへの移行が必要で、ダウンタイムなしで VPS を移行する のは、できれば避けたい手間です。
複数の事業者のプランを比べているなら、VPS のスペックの読み方 で、vCPU、ディスク、ポートの数字が実際に何を約束しているのかを解説しています。
コメント
まだコメントはありません。最初になりましょう。