2016-03-29 25 views
0

テストセットアップ(単一のクライアントサーバー - localhostでGatlingを実行し、テスト中に接続を作成して閉じる)では、私の単一ノードZookeeperは、テストの実行が完了するまですべてのTCP接続を開いたままにします。Zookeeper TCP接続はいつサーバー側でクリーンアップされますか?

最初の2分間でテストを実行している間、私は繰り返して約10秒間クライアント接続を並列に作成します。これは約30秒間生きていて、再び接続を閉じます。したがって、いずれの瞬間も、最初の2分間に最大10の接続がアクティブになります。 その後、テストはさらに8分間続き、その間にクライアント接続がアクティブになるのは1回だけです。

クライアント側:使用キュレーター2.9.1および3.4​​.6飼育係

飼育係ノード:クライアント私の知る限り3.4.8-1--1

適切に接続(証拠を閉じる:私はそれは短命だ見ます飼育係のノードに両論にコマンドを送信するとき、TCP接続の数が最初に上昇し続け、

しかしLS /パス/に/ ephemeralsは、飼育係のログが閉じ示す接続だけでなく)を行う際のノードが削除されます2分間、合計126回まで。それまではその数にとどまりますテストランが完了し、すべての接続が一度に消えてしまいます。

私は、接続の数が10から20のように低く、テストの「アクティブ」段階では安定していると予想しました。代わりに、新しい接続を開いたり閉じたりする限り、それは上昇し続けます。その後

2016-03-25 15:54:04,305 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:[email protected]] - Accepted socket connection from /0:0:0:0:0:0:0:1:60758 
2016-03-25 15:54:04,321 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:[email protected]] - Client attempting to establish new session at /0:0:0:0:0:0:0:1:60758 
2016-03-25 15:54:04,324 - INFO [SyncThread:0:[email protected]] - Established session 0x153ae440b2e000f with negotiated timeout 10000 for client /0:0:0:0:0:0:0:1:60758 
2016-03-25 15:54:04,324 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:[email protected]] - got auth packet /0:0:0:0:0:0:0:1:60758 
2016-03-25 15:54:04,325 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:[email protected]] - auth success /0:0:0:0:0:0:0:1:60758 
2016-03-25 15:54:04,326 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:[email protected]] - got auth packet /0:0:0:0:0:0:0:1:60758 
2016-03-25 15:54:04,328 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:[email protected]] - auth success /0:0:0:0:0:0:0:1:60758 
2016-03-25 15:54:04,803 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:[email protected]] - Accepted socket connection from /127.0.0.1:37236 
2016-03-25 15:54:04,804 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:[email protected]] - Client attempting to establish new session at /127.0.0.1:37236 
2016-03-25 15:54:04,805 - INFO [SyncThread:0:[email protected]] - Established session 0x153ae440b2e0010 with negotiated timeout 10000 for client /127.0.0.1:37236 
2016-03-25 15:54:04,828 - INFO [ProcessThread(sid:0 cport:12182)::[email protected]] - Processed session termination for sessionid: 0x153ae440b2e0010 
2016-03-25 15:54:04,830 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:12182:[email protected]] - Closed socket connection for client /127.0.0.1:37236 which had sessionid 0x153ae440b2e0010 

、唯一の実行の最後に、私は

2016-03-25 15:57:44,002 - INFO [SessionTracker:[email protected]] - Expiring session 0x153ae440b2e006c, timeout of 10000ms exceeded 
2016-03-25 15:57:44,003 - INFO [SessionTracker:[email protected]] - Expiring session 0x153ae440b2e00b8, timeout of 10000ms exceeded 
2016-03-25 15:57:44,003 - INFO [SessionTracker:[email protected]] - Expiring session 0x153ae440b2e0094, timeout of 10000ms exceeded 
... 
2016-03-25 15:57:44,014 - INFO [ProcessThread(sid:0 cport:12182)::[email protected]] - Processed session termination for sessionid: 0x153ae440b2e006c 
2016-03-25 15:57:44,014 - INFO [ProcessThread(sid:0 cport:12182)::[email protected]] - Processed session termination for sessionid: 0x153ae440b2e00b8 
2016-03-25 15:57:44,015 - INFO [ProcessThread(sid:0 cport:12182)::[email protected]] - Processed session termination for sessionid: 0x153ae440b2e0094 
... 

(注を参照の各接続用:最初の2分の間に、飼育係のログが開閉接続を示し

上記のログは手動で中断された実行から取得されたものですが、実行が16:02に完了した場合の動作は同じです)

私は次の設定で実行しています(excer PT):

tickTime=2000 
maxSessionTimeout=10000 
minSessionTimeout=4000 
maxClientCnxns=0 

は、テストのセットアップに関連した接続数の増加です、または飼育係が作動するようにして、固有の?

+0

テスト中に実際のtcp接続が開いていますか? 'netstat -anp --tcp'のようなものは何ですか?接続を監視するのは飼い猫だけかもしれません。 – Petter

+0

はい、私は接続が実際にそこにあると確信しています。実際に、クライアント側のコードを詳しく調べると、接続が正しくない方法でシャットダウンしていることが明らかになりました(実際の接続は、を省略)。だから、それは飼い犬飼いやガトリングの問題ではなかった。 – JeanMarc

答えて

0

クライアントコードでエラーが発生しました。接続が正しく閉じられず、クリーンアップの半分だけが実行されました(一時的なノードは完全に削除されましたが、クライアント接続は実際には本当に閉じられませんでした)。

時間を浪費するお詫び

関連する問題