サーバーのディスク空き容量が枯渇した場合の調査方法と対処法

サーバー設定

サーバーを長期間運用していると、ディスク容量の問題が度々発生します。

今回は、ディスクが枯渇した場合の調査方法・対処法について紹介します。
簡単なコマンド1つで実行できるため、ぜひご確認ください。



サーバーのディスク容量を確認する

以下は、CentOS 7 を対象としていますが、Ubuntu でも手順は同等です。

サーバーのディスク状況を確認する df コマンドを実行します。
df -h とすることで、分かりやすい単位(GB など)で表現してくれます。

$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   29G  9.7G   19G  35% /
/dev/sda1                497M  254M  244M  52% /boot
devtmpfs                 3.9G     0  3.9G   0% /dev
tmpfs                    783M     0  783M   0% /run/user/1000

環境によって細部は異なりますが、右側が / となっている行がメインディスクを示します。
Used が使用中領域、Avail が空き領域、Use% がディスク使用率を表しています。

容量の大きなディレクトリを特定する

ディスクの状況を確認した後は、どのディレクトリが肥大化しているかを特定します。

ディレクトリのサイズを計測できる du -sh コマンドを使用します。
必要に応じてrootユーザで実行してください。

# du -sh /usr
2.4G    /usr

上記の例では /usr が2.4GB使用していることがわかりました。
もう少し詳細に見るために、*を付けてサブディレクトリを計測します。

# du -sh /usr/*
223M    /usr/bin
8.8M    /usr/include
971M    /usr/lib
190M    /usr/lib64
75M     /usr/libexec
374M    /usr/local
50M     /usr/sbin
504M    /usr/share

肥大化している箇所が分からない場合は、上記手順を繰り返して問題箇所を特定しましょう。

不要ファイルを削除し、ディスク枯渇の再発を防止する

サイズの大きなディレクトリが判明した場合は、不要なファイルを削除してディスク容量を確保します。もし削除できない場合は、gzip などで圧縮できないか検討しましょう。

サーバー内で肥大化しやすいファイルを紹介します。

  • /var/log/ 配下のシステムログ
  • /tmp の一時ファイル
  • アプリケーションのログファイル
  • データベースサーバーの実データ

 
各種ログファイルは、古いものを削除していないと常に増え続けます。
必要に応じて圧縮したり他サーバへ転送するなどの対策が必要となります。

定期的にログを削除・圧縮する場合には「ログローテート」の設定が有効です。

まとめ

サーバーのディスクが枯渇した場合の対応について解説しました。
コマンドでディスク状況を確認、大きなディレクトリを特定、不要ファイル削除の流れです。

コマンド自体は、CentOS, Ubuntu どちらでも共通で利用できます。
また、サイズが膨らみがちなファイルを把握しておくことで、前もって対策を行いましょう。

【関連記事】
サーバー・システムのスケールを解説
サーバー監視サービス・ツールを比較
CentOS が重いときの確認コマンド
AWS とクラウドの事例を分かりやすく解説
WordPress が遅いときの対処法
Web サイトの不正アクセス対策