プール内に利用可能な接続がありません。netstat RecvQ は高い数値を示しています

プール内に利用可能な接続がありません。netstat RecvQ は高い数値を示しています

私たちのサーバーには、特定の依存関係 (Java jar) が 1 つあり、さまざまなリモート サーバーに合計 1024 の接続を作成します (ライブラリはサービス検出として機能します)。

断続的に、接続プール内のすべての接続が使い果たされ、その特定のサービスへの着信トラフィックに使用できる接続がなくなることが観察されます。このような場合、接続を解放する唯一の方法は、そのようなサービスを再起動することです。

このような問題が発生すると、netstat は、多数の接続 (1000 以上) が ESTABLISHED 状態にあり、 recvQ の数が非常に多いことを示します。

tcp    71464      0 localhost:57076 remote-host1:31200 ESTABLISHED
tcp    70512      0 localhost:47611 remote-host2:31200 ESTABLISHED
tcp    66184      0 localhost:44825 remote-host3:31200 ESTABLISHED
tcp    70512      0 localhost:40802 remote-host4:31200 ESTABLISHED
tcp    70016      0 localhost:58045 remote-host5:31200 ESTABLISHED
tcp    71464      0 localhost:35375 remote-host6:31200 ESTABLISHED
tcp    71464      0 localhost:48860 remote-host7:31200 ESTABLISHED

接続がリモート ホストからデータを受信して​​いないことが問題として考えられます。

関連情報