
よくある障害原因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