見つけたもの
githubにあったMQTT Benchmark
MQTT v3.1準拠のベンチマーク。
SpringSourceのひとが、STOMPベンチマークをMQTTにポートしたらしい。
対象サーバ
- Apache ActiveMQ ApolloのMQTTプロトコル -
ApolloはScala実装。libdispatch(GDC)のjavaポートを使ってる。 -
Mosquitto -
C実装。付属ツールのmosquitto_pub/mosquitto_subが便利。
実装
セットアップから実行までオールインワンタイプ。
MQTTサーバは、ダウンロードしてきてコンパイルしてくれる。
ベンチマークはscalaで実施。なので、ApolloのMQTTプラグインをチューニングするのに必要だったのかもしれない。
計測内容は、結構細かい。
JSON形式のログ結果をグラフィカルに表示してくれる。
OSXでも動いた。
ベンチマーク結果の印象
途中まで実行した感じMosquittoに比べて、ApolloのMQTTが2桁倍速いようだ。(データストアまわりは確認してない)
改善したほうが良い点
- クライアントとサーバを別環境に用意してやる
- 他のMQTTサーバを用意する
クライアントは別サーバにしてやらないと、安定した計測が難しい。
拡張しやすく作られているが、他のMQTTサーバに対応させるのに、オールインワンにする必要はある?
商用レベルでメンテナンスされてるようなサーバであれば対応されると良さそう。
erlangのeMQTTやnodeのmoscaなどは、まだ個人ベースかもしれない。