池中没有可用的连接。netstat RecvQ 显示高数字

池中没有可用的连接。netstat RecvQ 显示高数字

在我们的服务器中有一个特定的依赖项(java jar),它与各种远程服务器建立了总共 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

可能存在的问题是,连接未接收来自远程主机的数据。

相关内容