サーバーのディスクフル対応

よくある障害原因No1? 三銃士? 四天王?

自分は開発が好きなので、開発だけやってたいなという気持ちはあるのですが、自社サ正社員だろうがフリーで現場に入ろうが、持ち物(担当サービス)などを持つと、悲しきかな運用・保守・障害対応業務もやらなくてはいけません

大して長くない実務経験の中で、障害時に最もよくある原因?の一つにサーバーのディスクフルがあり、体感結構多いです。満杯になってしまうとログが書き込めなくなってプログラムがエラーに落ちたり、セッションやsshが保てなくなったりと、普段特に気にしてないような機能もサーバー内ファイルに書き込む機構だったりすることもあり色々な問題が起きてしまいます。

そもそも圧迫しないようにするとかじゃあ何をどう消しましょうかみたいな話は要相談ですが、ひとまず原因を特定するのは以下dfとduコマンドの2つで何とかなります。

コマンド①(df : 現状把握)

df -h
  • dfコマンドでまずサーバーの状況を見ましょう。オプションはお好みで、以下のように出ます。
  • 使用%が100%超えると不都合出てきます、仮にvar配下が100%超えたらvar以下で重くなっているものを探しましょう。
Filesystem  タイプ  1K-ブロック  使用    使用可   使用%  マウント位置
/dev/sda2   ext3    12721460    4773156  7302092   40%   / 
/dev/sda1   ext3      124427      17559   100444   15%   /boot 
none        tmpfs     127692          0   127692    0%   /dev/shm 
/dev/sdb1   ext3     8768128     675440  7647288    9%   /pub 
/dev/sda5   ext3     2063504      32880  1925804    2%   /tmp 
/dev/sda3   ext3     2063536     202732  1755980   11%   /var

コマンド②(du: 原因特定)

du -h --max-depth=1 ./
  • あとはduコマンドで怪しそうなディレクトリを見つけて行きます。
  • dbデータだったりログファイルだったりbackupファイルだったりと明らかにこいつが悪さしていると言えるような原因を見つけたらあとは皆と相談ですね!
$ du -h /usr/share/
84K	/usr/share/groff/1.18.1.4/font/devX100
20K	/usr/share/groff/1.18.1.4/font/devlj4/generate
464K	/usr/share/groff/1.18.1.4/font/devlj4
24K	/usr/share/groff/1.18.1.4/font/devascii
84K	/usr/share/groff/1.18.1.4/font/devX75
88K	/usr/share/groff/1.18.1.4/font/devhtml
84K	/usr/share/groff/1.18.1.4/font/devX75-12
24K	/usr/share/groff/1.18.1.4/font/devascii8
24K	/usr/share/groff/1.18.1.4/font/devlatin1
32K	/usr/share/groff/1.18.1.4/font/devnippon
84K	/usr/share/groff/1.18.1.4/font/devX100-12

対策

  • ログなどローテーションする、古いものは取らないor圧縮する仕組みを作る
  • Zabbixなどサーバー監視ツールで容量圧迫時にアラートが飛ぶようにしておく
  • サーバーのスペックを多少は余分にしておく
  • 定期的に全使用サーバーの大掃除や確認などのタイミングを作る(これ結構大事だと思います)

その他コマンド

古いものから順に表示してくれる。slackとかにスクショする時に便利。

ls -ltr | head 10

    削除コマンドの一つ、やる前にdelete抜くなど確認したいと事故の元。。。

    find /path/to/log -type f -name '**.log' -mtime +7 -delete
    おすすめの記事