
私たちのサーバーには、特定の依存関係 (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
接続がリモート ホストからデータを受信していないことが問題として考えられます。