2016-12-08 10 views
0

3つのノードを持つ1つのKaa(バージョン0.9)クラスタがあります。 エンドポイントがKaaノードに再接続することがあり、通知を受け取ることができないことがあります。 エンドポイントはすべてのトピックを購読しており、管理者のウェブサイトでも確認しています。 それだけでメッセージの下に表示さKAAとコンソールに接続した後:その後、は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つのサーバに接続します。

+0

詳しい調査のため、TRACEログレベルの完全なクライアントとKAAサーバのログを提供してください。詳細については、http://kaaproject.github.io/kaa/docs/latest/Administration-guide/Troubleshooting/を参照してください。 また、最新のKaa 0.10.0 https://www.kaaproject.org/let-creativity-shine-new-kaa-0-10-0/でこの問題を再現できますか? – Oleksandr

+0

ログは以下のURLから取得できます:http://163.13.201.222/~bluerex/kaa-node.log – Naruto

答えて

1

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

私たちはカーアノードのメモリ使用量が1日前に私たちのサーバの80%以上になることを発見しました。現在、Kaa-nodeを起動している間に、元のG1 gcを置き換えるために異なるjava gcを使用しようとしています。そしてメモリ使用量はG1 gcを使うよりも良いようです。私たちは引き続きそれを監視します。

+0

ありがとうございます。他のGCを試してみるうちに、私たちを同期させてください。 – Oleksandr

関連する問題