kubernetes-practice-guide icon indicating copy to clipboard operation
kubernetes-practice-guide copied to clipboard

内核参数优化的问题

Open czheji opened this issue 4 years ago • 1 comments

net.netfilter.nf_conntrack_tcp_timeout_established=300 这个内核参数默认为5天,改成300秒会对长连接或有连接池的应用造成严重的问题! 请说该配置的用意以及优化来源,或者适用的场景。 例如: SpringBoot2采用Hikari数据库连接池,默认配置下会关闭空闲超过10分钟的连接。 在这个配置下,空闲超过5分钟,但是未到10分钟的连接仍然保留在连接池中,导致应用程序的连接池中的空闲连接不可用!

czheji avatar Aug 14 '20 06:08 czheji

nf_conntrack_tcp_timeout_established=300应该是kube-proxy默认的优化点。如果有长连接场景的话,确实有这坑。另外这个参数似乎还和nf_conntrack_tcp_timeout_max_retrans有关系。

这是我们这边内核关于这部分的配置说明

#维持通过NAT维持TCP长连接的优化,注意kube-proxy会修改此参数
net.netfilter.nf_conntrack_tcp_timeout_established=3600
#tcp_keepalive_time+ tcp_keepalive_interval * tcp_keepalive_max_retry + 2msl取整
net.netfilter.nf_conntrack_tcp_timeout_max_retrans=720

LinkMaq avatar Oct 13 '20 13:10 LinkMaq