mruby-zabbixとmruby-growthforecastでデバイスやアプリケーションの監視並びに情報の可視化を実現

僕は実はZABBIX-JPのスタッフでもあるので、mrubyでも優先度高めでZabbixのAPIをつつけるClassを作ってみました。

これで、mruby-grothforecastで簡単に組み込みデバイスやアプリケーションの内部情報を簡単に可視化できたり、Zabbixに対してAPI経由で監視の操作ができたり、かなり夢が広がったのではないでしょうか。

ということで、mrbgemsの使い方も兼ねて、mruby-zabbixの使い方を説明します。

続きを読む

mrubyのirepテーブルを再利用する事でmod_mrubyのメモリ消費量を改善

昨日、内部フラグメンテーション耐性の高いjemallocを利用することで、mod_mrubyのメモリ使用量を半分に減らす事ができました。

しかし、なお、mod_mrubyを組み込んだサーバプロセスに継続してRubyスクリプトを処理させると、メモリ消費量が単調増加してしまうという問題が残っていました。

そこで、単調増加してしまう原因を突き止め、メモリ消費量増加をさらに改善することができました。

続きを読む

mod_mrubyのメモリ問題をvalgrindで調査の上jemallocで改善

mod_mrubyはmrubyのmrb_stateをApacheのサーバプロセス上で使いまわすアーキテクチャをとっています。基本的にプロセスは起動しっぱなしなのですが、リクエストを大量に処理すると、プロセスのメモリがどんどん太っていく問題がありました。

これは、mruby-uv等でも報告されており、どうにか改善したいと思っていました。そこで、twitter上でいくつかmatzさんとやり取りしながら、valgrindでメモリのLEAKとHEAPを調査の上、mallocのフラグメントを疑い、jemallocでmallocをフックするとどのようにメモリ使用量が改善するかを実験しました。

続きを読む

mrubyからGrowthForecastにデータをポストするmruby-growthforecast書いた

mrubyを組み込んだウォシュレットの水の流量をグラフ化できる可能性が高くなってきました。

mrubyのC拡張をmrbgems化するサンプルで書いたmruby-redisに引き続き、mrubyをrubyで拡張するmrblibをmrbgems化するためのサンプルとしてmruby-growthforecastを書きました。

続きを読む