源服务器和目标服务器显示已build立的TCP连接数量不同

我在不同的机器上有一个JBoss应用服务器和一个Postgres数据库服务器。 我正在解决它们之间的TCP连接问题(因为应用程序一直在用完数据库连接)。

我看到这一点,这是没有意义的:

  • 当我在数据库服务器上执行netstat的时候,我看到很多来自我的应用服务器的已build立的TCP连接。
  • 当我在应用程序服务器上执行netstat时,几乎看不到到数据库服务器的已build立的TCP连接。

这些机器是运行Centos的VMware虚拟机,由云提供商(而不是AWS)pipe理。 机器之间没有防火墙(按照保持打开的连接数量太多 ),这看起来像是类似的行为。

我不知道还有什么可能导致这种不对称?

很奇怪。 好像应用程序服务器只是没有收到FIN和其他人回答他们,这可能是您的云提供商的问题。 但是,您仍然可以尝试解决此问题的方法,并且偶尔closures旧的连接。 看看是否有空闲的PostgreSQL连接超时? 了解更多关于如何做的信息。

为了让其他人看到这种行为的好处,正如@Shmuel Hazan所build议的那样,在云提供商端被VMware确认是一个问题。

如果我理解正确,这是VShield边缘的问题,这就是为什么观察到的行为与防火墙切断连接的行为相匹配。

一旦提供商纠正错误,恢复正常的服务。