2009年5月14日

Out Of Memory Killerと戦う

某クライアントさんからメモリ不足時のプログラムの挙動についてテストしろって内容があって、どのようにしてメモリ不足を起こすかと思って、以下のようにしてメモリを大量消費してみた。
perl -e 'my @Array; $#Array = 1000000000; sleep;'
しばらくすると、"Terminated!!" とか出て突然、落ちたから何事かと思って、隣の人に聞いたら、OOM Killerなる奴がいるらしく、そいつの仕業って事を知った。

ってか、Linuxにこんな機能があったなんて初めて知った。

なんどもやってたら、memcachedとかMySQLとか容赦なく殺されて逝ったwww
なぜか、apacheは死ななかったけど、、、たまたまかな??

MySQLが、必至に restart している挙動に、健気だなぁとか思った。

あと、top で、perlのプロセス見てたら、メモリ消費が "1.0g" とか出てて、ちゃんと1ギガ消費してたら、その通りに出るんだなぁとか、、、。。ってか、1.0gとかって初めて見たwww

OOM Killer:ITpro