Wakameの話ではなくisonoについての話
この記事はWakame Users Group Advent Calendar 2013の12/13分です。
12/12の記事はこちらです。
ご存知な方々もそうでない方々もはじめまして。
2年ほど前にWakame-vdcと大いにまみれさせていただいた、平田と申します。
その際にやったことは↓。
で、今日はWakame-vdc内で使ってるisonoの話をちょっと書いてみます。
詳しい中身は↓を。
何をするためのものか
AMQP/EventMachineといったあたりが依存パッケージとして入っている、という点でピンとくる人もいるかもですが。
Wakame-vdc内部で行われている、様々なメッセージング処理の際(内部通信をつかさどる、という書き方のほうがいいかもしれません)に登場します。
使い方もシンプルで、
https://github.com/axsh/wakame-vdc/tree/master/dcmgr/bin
それぞれ必要に応じてload_moduleで呼び出す、といった感じ。
話戻って、2年前
当時Wakame-vdcを使って空恐ろしい数のインスタンスを立てては落とし、立てては落とし。
その年のWakameTechで「日本で一番Wakame-vdcでインスタンスを立てたかも」というよく分からない肩書きで参加させていただいたのですが。
立てては落としの中で「なぜかhvaが落ちる」という現象がありまして。
当時いろいろ調べていた中で、coredumpから追いかけた際に頻繁に登場するのがisonoさんでした。
調べた結果
で、実際のところisonoではなく、その先のEventMachineとかに当時問題が。
gavage collectionが実行されるタイミングで、状態によってはたまに落ちる、という問題をはらんでおりまして。
最終的にはRubyのバージョンを1.8.7から1.9.3にすることで解決したのですが、これを追いかける経緯でよくisonoのコードを読んだりしていたのです。
「うぁーまたisonoかー」とか何度か叫んだこともありますが、isonoは何も問題なかったという。
※ いやまあisono起因だとは思っていなかったんですが、何度も目にすると、ですね。。。
某nakajima君風に言うなら「ごめんよisonoー」といったところでしょうか。
というわけで
とりとめのない昔話と、普段あまり話題に挙がってこないけどすごく大事なisonoの話でした。