1

多数のクライアント (Eclipse paho に基づく) を MQTT ブローカーに接続しようとしています。

ブローカに接続するサブスクライバの速度を低下させる不適切なハイ メモリ ウォーターマーク セットが頻繁に表示されます。

これは約 10k 接続で発生し始め、それ以上の接続が遅くなります。この時点で、すべての rabbitmq プロセスによって報告される %mem は、8 GB の RAM の < 30% です。

=INFO REPORT==== 31-Oct-2014::12:52:58 ===
vm_memory_high_watermark clear. Memory used:7420789416 allowed:7430278348

=WARNING REPORT==== 31-Oct-2014::12:52:58 ===
memory resource limit alarm cleared on node 'rabbit@jb-m01'

hipe compile を有効にしましたが、有効にしなくても状況は同じです。

すべてのサブスクライバーconnect()は、スレッド プールでメソッドを実行します。

私は違いました。スレッド数が 20、100、200、20 以下の場合、%cpu は正常です ~ 60-80、100 以上では ~ 200-300 になることがあります。いいえ。接続の数は増加しません (変動 ~ 10K)。

この時点で、サブスクライバーが次のエラーをスローしていることもわかります。これは、過負荷のためにブローカーが停止していることを意味しますか?

Connection lost (32109) - java.io.EOFException
    at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:138)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.EOFException
    at java.io.DataInputStream.readByte(DataInputStream.java:267)
    at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:56)
    at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:100)
    ... 1 more

クライアント/サーバー構成の作成中に必要なものはありますか?

ありがとう ...

4

0 に答える 0