サーバーを長期間運用していると、ディスク容量の問題が度々発生します。
今回は、ディスクが枯渇した場合の調査方法・対処法について紹介します。
簡単なコマンド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 サイトの不正アクセス対策