logmonとは
簡単にログ監視を実現できるスクリプト。
参考:logmon でかんたんにログ監視
原因/結果
先に結果を書いておくと、
logmon.confの中身を全て消した上でlogmonをstartすると、暴走してCPUを食いつぶす
ということだった。
存在しないファイルでも良いので監視設定を書いておくと、こんなことにはならない。
現象/経緯
AWS上にWeb/APサーバを立て、AP側の人に渡したところ、
何か知らんけどAPの処理がめちゃんこ遅いので調べてほしいと言われたので調査。
cloudwatchのデータを見ていると、CPU使用率が20%あたりで張り付いていることに気づく。
EC2を再起動すると一旦APの動きは直るものの、直ぐに同じ状態になるとのことだったので、
再起動してCPU使用率を見てみると、100%近くに張り付いたあと、12%程度まで落ちて張り付くことが発覚。
LPICで勉強したリソース調査コマンドを思い出しながら調査していくものの、
どのプロセスが問題なのかわからなかったため、なんとなくでlogmonを止めた所ビンゴ。
(監視対象ログファイルがまだ存在しなかったので、logmon.confはまっさらにしていた。)
(じゃあstartするなと言われると何も言えません。。。)
調査データ
vmstat実行結果はこんな感じ(再現させたもの)。
○ logmonのstart直後
[root@XXXXXX logmon]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 647612 2088 306896 0 0 463 404 127 408 4 2 91 1 2
1 0 0 647364 2088 306896 0 0 0 0 255 1891 31 69 0 0 0
1 0 0 647364 2088 306896 0 0 0 0 254 1898 32 68 0 0 0
1 0 0 647364 2088 306896 0 0 0 0 253 1889 30 70 0 0 0
1 0 0 647364 2088 306896 0 0 0 0 254 1889 28 72 0 0 0
コンテキストスイッチがとんでもないことに。
waitが0になり、us/sysともに跳ね上がる。(bi/boが高いのはEC2作成直後だから?だと思う。)
○ logmonのstart後しばらくしたあと
[root@ip-172-31-37-57 ~]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 644340 2088 310312 0 0 65 60 223 1595 26 56 13 0 5
2 0 0 644092 2088 310312 0 0 0 0 51 294 7 7 0 0 87
4 0 0 644092 2088 310312 0 0 0 0 52 311 5 7 0 0 88
3 0 0 644092 2088 310312 0 0 0 0 51 275 6 7 0 0 86
4 0 0 644092 2088 310312 0 0 0 0 52 284 7 8 0 0 86
[root@ip-172-31-37-57 ~]#
[root@ip-172-31-37-57 ~]#
stealされている。これは多分aws側の処理(t2.microなので、CPUクレジットかなと予想)
○ Cloudwatch