Mongodb docs建议减少tcp keepalive时间以获得更好的性能:
如果遇到客户端和服务器之间或分片群集或副本集的成员之间的套接字错误,但没有其他合理原因,请检查TCP keepalive值(例如,Linux系统上的tcp_keepalive_time值)。常见的存活时间为7200秒(2小时);但是,不同的发行版和macOS可能具有不同的设置。
但是,它并不能解释为什么这样做会有所帮助,如何提高性能。根据我的(有限的)理解,由mongo碎片和副本创建的连接将拥有自己的存活时间,这可能比linux全局存活值短得多。因此Mongo可能会像配置一样中断连接,并且理想情况下创建新连接应该不会花费太多时间。
如何通过减少linux tcp keep live设置来提高性能?