httpd invoked oom-killerでMySQLがダウンした
/var/log/messagesに下記のメッセージが発生。Feb 2 15:10:02
kernel: httpd invoked oom-killer: gfp_mask=0x200da, order=0, oom_adj=0, oom_score_adj=0
kernel: httpd cpuset=/ mems_allowed=0
kernel: Pid: 11302, comm: httpd Not tainted 2.6.32-431.17.1.el6.x86_64 #1
kernel: Call Trace:
kernel: [<ffffffff810d0211>] ? cpuset_print_task_mems_allowed+0x91/0xb0
kernel: [ pid ] uid tgid total_vm rss cpu oom_adj oom_score_adj name
kernel: [ 396] 0 396 2761 0 1 -17 -1000 udevd
kernel: [ 728] 0 728 2760 0 0 -17 -1000 udevd
このあと[httpd]が149個!!
kernel: Out of memory: Kill process 17202 (mysqld) score 61 or sacrifice child
kernel: Killed process 17202, UID 497, (mysqld) total-vm:2311292kB, anon-rss:27868kB, file-rss:16kB
こんな感じです。
で、その時間は何をしてたのかな??
httpとでてるんで、Apacheさんがなにをしていた(されていた)かを/var/log/http/access_logで見てると
ワードプレスの同一カテゴリーを3分くらいの間に、一つの端末から連打されていました。
その数、223回(^^;
さてその対策は。。
このアクセスですが、気がついたときには1つのアドレスからだったんですが、翌日からは様々なアドレスから来るようになりました(@@)
アドレスなんかで制限かけりゃいいかなぁなんて、甘々で考えてた構想はもろくにも崩れ去りましたorz
でどうしようかと考えてたんですが。。。
MySQLg落ちる根本的な理由は、Apacheのプロセスがいっぱい立ち上がってメモリ不足になっちゃったから。
では、プロセスの生成を抑えればいいじゃん!
ってことで、プロセスの生成数を半分くらいにしちゃいました。
*ま、そんな忙しいサイトでもないんでこれでいけるかなぁって、いまのところえいやぁです(^^;
ここしばらく様子を見てますが、アクセスは相変わらず。
でも、停止することは無くなりました。
もう少し様子を見てから、プロセス数を増やしてみるつもりです(^^)