0

3 つのノードを持つ 1 Kaa (バージョン 0.9) クラスターがあります。エンドポイントが Kaa ノードに再接続し、通知を受信できないことがあることがわかりました。エンドポイントはすべてのトピックをサブスクライブしており、管理 Web サイトでも確認しています。Kaa に接続すると、コンソールに以下のメッセージが表示されます。

[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - KaaSync message (zipped=false, encrypted=true) received for channel [default_operation_tcp_channel]
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.DefaultOperationDataProcessor - Received Sync response: {"requestId": 2, "status": "SUCCESS", "bootstrapSyncResponse": null, "profileSyncResponse": null, "configurationSyncResponse": null, "notificationSyncResponse": {"responseStatus": "NO_DELTA", "notifications": [], "availableTopics": null}, "userSyncResponse": {"userAttachResponse": null, "userAttachNotification": null, "userDetachNotification": null, "endpointAttachResponses": [], "endpointDetachResponses": []}, "eventSyncResponse": {"eventSequenceNumberResponse": null, "eventListenersResponses": [], "events": null}, "redirectSyncResponse": null, "logSyncResponse": null, "extensionSyncResponses": null}
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.transports.DefaultNotificationTransport - Processed notification response.
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.transports.DefaultUserTransport - Processed user response
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - Channel [default_operation_tcp_channel] is reading data from stream using [1024] byte buffer
[pool-6-thread-2] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - Executing ping task for channel [default_operation_tcp_channel]
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - PingResponse message received for channel [default_operation_tcp_channel]
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - Channel [default_operation_tcp_channel] is reading data from stream using [1024] byte buffer
[pool-6-thread-2] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - Executing ping task for channel [default_operation_tcp_channel]
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - PingResponse message received for channel [default_operation_tcp_channel]
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - Channel [default_operation_tcp_channel] is reading data from stream using [1024] byte buffer
[pool-6-thread-2] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - Executing ping task for channel [default_operation_tcp_channel]
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - PingResponse message received for channel [default_operation_tcp_channel]
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - Channel [default_operation_tcp_channel] is reading data from stream using [1024] byte buffer
[pool-6-thread-2] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - Executing ping task for channel [default_operation_tcp_channel]
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - PingResponse message received for channel [default_operation_tcp_channel]
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - Channel [default_operation_tcp_channel] is reading data from stream using [1024] byte buffer
[pool-6-thread-2] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - Executing ping task for channel [default_operation_tcp_channel]
[pool-6-thread-1] INFO org.kaaproject.kaa.client.channel.impl.channels.DefaultOperationTcpChannel - PingResponse message received for channel [default_operation_tcp_channel]
[pool-6-thread-1] INFO org.kaaproject.kaa.client.cnhannel.impl.channels.DefaultOperationTcpChannel - Channel [default_operation_tcp_channel] is reading data from stream using [1024] byte buffer

そして、エンドポイントを停止して、Kaa サーバーに再接続しようとします。Kaaに接続すると、古い通知が表示されます。しかし、このエンドポイントに新しい通知を送信しようとしましたが、まだ新しい通知を取得できません。

また、Kaa サーバーへの接続を切断して再接続すると、再び通知を受け取ることができることもわかりました。しかし、エンドポイントが通知を取得できないという状況は、他のエンドポイントでもまだ発生しているようです。この問題がクラスターに関連しているかどうかはわかりません。場合によっては、kaa-node サービスを再起動し、その時点でエンドポイントが他の 2 つのサーバーに接続します。

4

1 に答える 1

1

根本的な原因が見つかったようです。ログから、通知がエンドポイントに正常に送信されることがわかりました。しかし、パフォーマンスが非常に悪く、エンドポイントが通知を受け取るまでに多くの時間が必要なようです。最後に、根本的な原因はサーバーのスワップ ファイルであることがわかりました。私たちのサーバーは以前にスワップファイルを設定しましたが、通知の送信のパフォーマンスに影響を与えているようです. スワップ領域を無効にして通知を送信しようとすると、エンドポイントは妥当な時間内に取得できます。

Kaa-node のメモリ使用量が 1 日前にサーバーの 80% を超えることがわかったスワップ原因を設定しました。現在、Kaa-node を開始する際に、元の G1 gc を置き換えるために別の Java gc を使用しようとしています。また、メモリ使用量は G1 gc を使用するよりも優れているようです。今後も監視を続けていきます。

于 2016-12-13T14:14:17.283 に答える