2012-04-10 13 views
8

プッシュ通知のMQTTと関連して、Linuxで1024の接続制限を超えているのはどうですか?mqtt mosquitto Linuxの接続制限

私はMoskittoサーバーを使用していますが、これはLinuxのバージョンに1024の接続制限がありません。ですから、1台のサーバー(ブリッジなどなし)を使用して5,000人、10,000人以上のユーザーを取得できますか?

または、絶対にブリッジする必要がありますか?私はこれが設定のmanページ以外の設定方法に関する多くの執筆をモスキートのために見たことはありません。

または、いくつかのLinux構成設定を変更するだけで入手できますが、単一のモスキートサーバーを使用するとよいでしょうか?

私のアプリは多かれ少なかれインスタントメッセージングアプリなので、メッセージを知らせるために蚊帳への永続的な24時間365日の接続でそれを使って~20000人、おそらく2万人がいると思います。

うーん

答えて

8

理論的には、あなたが必要とするものにモスキートの最大数のソケットを設定することができます。それでは、パフォーマンスについての質問です。キーメトリックは、1秒あたりの合計メッセージ数です。接続しているクライアントが20k台の場合、アクティブになるメッセージの数と送信するメッセージの数は何ですか?

例として、クライアントの半数がアクティブで、1秒あたり1メッセージを送信している場合、10k mspsがあります。もちろん、受信のみです。それらのメッセージのそれぞれが10バイトであれば、100kB/sまたは800kbpsを持続します。

トピック階層がどのように配置されているかがもう一つの側面です。私は何が最善であるかを伝えることはできませんが、確かに効果があります。

私の最善の提案は、現実の人物をシミュレートするクライアントを作成し、シナリオの実際のテストに使用することです。

極端なクライアント数:http://bit.ly/HytRpKの例を見ましたが、詳細はありません。

最後に、IBMは現在MQTTに関するレッドブックを作成しています。それはすぐに '春に'利用できるはずです。スケーリングの問題をカバーすると思います。

+0

ありがとうRoger〜実際には私のクライアントは全くアクティブではないと期待しています.20,000人のクライアントに1秒間に4〜5個のリクエストがあると思います。すべての実際のユーザー通信は、MQTTではなくSSLを介してクライアント - >サーバーから行われます。次に、MQTTを使用して新しいメッセージが到着したという通知をユーザーに送信します。1日あたり約4〜5回、MQTTを使用して、 *すべてのユーザーにデータを提供しています。毎日のニュースの更新は非常に少ないので、1秒あたりのデータ/メッセージは非常に低くなります。トピックの階層 - ユーザーごとに1つのトピックを計画していました。だから20,000の話..うーん –

3

私は、接続の数にmosquittoのボリュームのテストを行っている誰も知りません。私は、あなたが選んだランタイムでモスキートのインスタンスをテストし、システムテスト中に多数のクライアントスレッドを接続することができると思います。

WebSphere MQをMQTTブローカーとして使用するIBMの実装は、最大100,000の同時接続をサポートすることが示されています。私は、IBMのフリーブローカーRSMBは1024の接続に限られていると信じています。

ブリッジとプロビジョニングサービスを使用してブローカをスケールアウトして、どのブローカが新しいユーザに接続するかを検討することを検討してください。

5

お客様は、IBM WebSphere MQのMQTTをテストし、キュー・マネージャーごとに最大240,000の同時クライアント接続数を増やすことができました(MQランタイムでは、MQクラスター内に多数を持つことができます)。私はそれがApache Webサーバーによって合理的に処理されるよりも10倍以上あると言われました。テスト中のサーバーCPUは、< 5%と低くなっています。同時に240,000を超える並列MQTTクライアントを増やし続けていたが、ラボでは負荷テストのクライアント・マシンが不足していた。 IBM MQは、WebSphere Message Broker ESBに組み込まれているpub/subプロバイダーなので、同じ結果が出ると思います。