仕事場のサーバを監視するのに、SNMPと自作のプローブで情報を取得してそれをRRDtoolのDBに放り込むツールをperlで作って動かしてるんですが、ふと気づいたら160MBぐらいメモリを使ってました。
1台のサーバが落ちたときに他のサーバの監視に影響しないように、SNMPと独自プロトコルの2つのスレッドを監視対象ごとに起動するような仕組みにしたのが裏目に出たようです。監視対象が30台ほどあるので計60スレッド、確かに設計がまずいです。
スレッドをやめるとして、SNMPの方はNet::SNMPのノンブロッキングモードを使うようにすればどうにかなりそうですが、独自プロトコルはどうしよう。IO::Socketでしゃべってる(というか聞くだけ)の簡単なものなのであまり手間はかけたくありませんが、勉強がてらPOEを使ってみるのもいいかもしれません
portsのp5-POE-*が何なのかを今日初めて理解したのは内緒です。内緒ですったら内緒です。ネットワーク屋にとって、POEといえばPower over Ethernetしか無いのです。
最近のコメント