为什么mongodb建议减少tcp_keepalive_time

Sau*_*abh 5 linux connection mongodb

Mongodb文档建议减少 tcp keepalive 时间以获得更好的性能:

如果您在客户端和服务器之间或者分片集群或副本集的成员之间遇到套接字错误,并且没有其他合理原因,请检查 TCP keepalive 值(例如,Linux 系统上的 tcp_keepalive_time 值)。常见的保活周期为7200秒(2小时);但是,不同的发行版和 macOS 可能有不同的设置。

然而它并没有解释为什么这会有所帮助,以及它如何提高性能。根据我(有限)的理解,mongo 分片和副本创建的连接将有自己的保持活动时间,这可能比 Linux 全局保持活动值短得多。因此 Mongo 可能会按照配置中断连接,并且创建新连接理想情况下不会花费太多时间。

如何通过减少 linux tcp keep alive 设置来提高性能?

小智 1

我感谢数据库端或客户端上较短的保持活动设置将保留较少的总连接,但服务器-客户端或服务器-服务器之间的活动连接百分比较高,而且较少的连接(池)将在服务器和客户端上使用较少的资源。