0
私のアプリケーションにgithub.com/garyburd/redigoを使用して、Redisの読み書きを並行して実行します。私はSingleton Patternでredigo NewRedisClient()を使用し、MAXACTIVE = 100、MAXIDLE = 100、IDLETIMEOUT = 60に設定しました。redigoプールを使用すると同時にTIME_WAITが多すぎます
アプリケーションが起動しました。私は、Redis Serverの成長にTIME_WAITが数多くあることがわかりました。以下のような:
[email protected]:/# netstat -anltp | grep TIME_WAIT | wc -l
10466
[email protected]:/# netstat -anltp | grep TIME_WAIT | wc -l
11776
[email protected]:/# netstat -anltp | grep TIME_WAIT | wc -l
12554
[email protected]:/# netstat -anltp | grep TIME_WAIT | wc -l
16017
そして私はまた、私は()をpool.Getたびにアクティブ数とアイドルのカウントを印刷する、それが示した:
ActiveCount: 1, MaxActive: 100, MaxIdle: 100, Pool: 0xc420288580, Conn: 0xc420220000, IdleSize: 0
ActiveCount: 3, MaxActive: 100, MaxIdle: 100, Pool: 0xc420288580, Conn: 0xc42064e0a0, IdleSize: 0
ActiveCount: 3, MaxActive: 100, MaxIdle: 100, Pool: 0xc420288580, Conn: 0xc4202960a0, IdleSize: 0
ActiveCount: 3, MaxActive: 100, MaxIdle: 100, Pool: 0xc420288580, Conn: 0xc4206765a0, IdleSize: 0
ActiveCount: 3, MaxActive: 100, MaxIdle: 100, Pool: 0xc420288580, Conn: 0xc420296140, IdleSize: 0
ActiveCount: 3, MaxActive: 100, MaxIdle: 100, Pool: 0xc420288580, Conn: 0xc42034c0a0, IdleSize: 0
ActiveCount: 3, MaxActive: 100, MaxIdle: 100, Pool: 0xc420288580, Conn: 0xc42034c320, IdleSize: 0
ActiveCount: 3, MaxActive: 100, MaxIdle: 100, Pool: 0xc420288580, Conn: 0xc42064e280, IdleSize: 0
ActiveCount: 3, MaxActive: 100, MaxIdle: 100, Pool: 0xc420288580, Conn: 0xc42034c3c0, IdleSize: 0
を非常に多くのTIME_WAITがあったのはなぜ?私はいくつかの接続を漏らしましたか?
Redigoには「NewRedisClient」という名前の関数はありません。コードを表示する。アプリケーションの使用が終了したら、アプリケーションは接続を閉じますか? –