Skip to content
VDS · トラブルシューティング

サーバーが遅い:まず何から始めるか

5 分間の診断手順:CPU、メモリ、ディスク、ネットワークについて、いくつかのコマンドでボトルネックを特定し、次に何をすべきかを説明します。

更新日 2026年8月23日

「すべてが遅い」は診断ではありません。ボトルネックはCPU、メモリ、ディスク、ネットワークの4つだけです。以下は、5分でそのうちの1つを特定するための確認手順です。

ステップ1:全体像

uptime
free -h
df -h

3つのコマンドで、選択肢の半分はすぐに除外できます。平均負荷がご利用のティアのコア数より明らかに高い場合、処理が滞留しています。ロードアベレージをご覧ください。availableがゼロに近い場合はメモリです。パーティションが100%使用されているなら、それ以上調べる必要はありません。空き容量不足をお読みください。

ステップ2:何がボトルネックなのか

vmstat 2 5

最初の行を除く、平均値の列に注目してください:

  • usとsyが高く、rが大きい — CPU律速です。
  • waが高く、bが大きい — ディスク律速です。
  • siとsoがゼロでない — スワップが発生しており、メモリが不足しているということです。
  • stが高い — ハイパーバイザーが消費した時間であり、これは外部要因です。サポートにお問い合わせください。

ステップ3:原因を特定する

ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
iotop -boPan 3 | head -20        # apt install iotop
ss -tn state established | wc -l

リアルタイムの状況はhtopまたはbtopの方が読み取りやすくなります。D状態のプロセスに注目してください。ディスク待ちで負荷を押し上げているプロセスです。

原因がご自身のアプリケーションにある場合、次に問うべきはそのアプリケーションについてです。データベースクエリが遅い、インデックスがない、ワーカーが多すぎる、デプロイ後の無限ループなどです。遅くなり始めた時点とログを突き合わせてください:

journalctl --since "1 hour ago" -p warning

ステップ4:履歴を確認する

パネルの「概要」/hosting/vds/m/<id>を開き、過去1日と1週間のグラフを確認してください。典型的なパターンは3つあります:

  • 特定の時点で一段上がっている — 何かが変わりました。デプロイ、アップデート、新しいcronジョブなどです。
  • スケジュール通りに定期的なピークがある — バックグラウンドタスクです。夜間に移動するか、niceとioniceで制限してください。
  • 何週間も横ばいのプラトーが続いている — 単純にご利用のティアを超えてしまったのです。

判明した結果への対処

ボトルネック応急処置長期的な解決策
CPU余分なプロセスを見つけて停止するコア数が多いティア
メモリワーカーとデータベースバッファを制限し、スワップを追加するメモリが多いティア
ディスクioniceでバックアップを制限し、ログを削減するより上位のティア:プラトーはコア数に応じて上がります
ネットワーク--bwlimitでバックグラウンドダウンロードを制限するトラフィックの発生元を調査する

ディスクのプラトーは次のように計算します:コアあたり60 MB/sの書き込みで、60を下回らず400を上回らない範囲です。読み取りはその2倍です。常にプラトーに達している場合、上位に移行しない限りディスクは速くなりません。ベンチマークをご覧ください。

よくある間違い

  • すぐにマシンを再起動する。 再起動すると状況が消えてしまい、1時間後にはすべて再現します。まず数値を集めてください。
  • 1コマだけを信用する。 htopを起動した瞬間のスパイクに意味はありません。1分間観察してください。
  • メモリが満杯なのを問題と決めつける。 freeではなくavailableとスワップを見てください。
  • 原因を突き止めずにティアを変更する。 メモリリークやループするスクリプトは、新しいティアにもついてきます。ダウングレードはサポートされていません。

CPU、メモリ、ディスクが落ち着いているのにアプリケーションが遅い場合、ボトルネックはマシンの外にあります。遅い外部API、DNS、またはクライアントのネットワークです。必要なアドレスに対してcurl -w '%{time_total}\n' -o /dev/null -sを確認してください。