首页/系统/Linux 内核与性能调优速查/TCP Keepalive 三参数速查
sysctl 内核参数72 条

TCP Keepalive 三参数速查

空闲连接保活探测:默认约 2 小时才发首个探测包,对穿越 NAT/防火墙的长连接通常过慢,需要按链路回收时间调小。

tcp_keepalive_time连接空闲多久后发第一个探测(默认 7200 秒)
tcp_keepalive_intvl探测间隔(默认 75 秒)
tcp_keepalive_probes失败多少次判定断开(默认 9)

查看与调整

查看与调整
sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl net.ipv4.tcp_keepalive_probes
sysctl -w net.ipv4.tcp_keepalive_time=600 net.ipv4.tcp_keepalive_intvl=30

观察连接计时器

观察连接计时器
ss -o state established '( dport = :3306 )'   # timer:(keepalive,...) 看保活剩余时间
默认组合约 2 小时 11 分才判定对端失联;应用可用 setsockopt(SO_KEEPALIVE/TCP_KEEPIDLE) 单独覆盖。

易错点

  • 调小全局保活会让所有连接(含数据库连接池)更早发探测包,注意与链路空闲时长匹配
  • 中间设备(NAT/防火墙)空闲回收常只有 300~900 秒,保活探测应小于该值才能防止连接被静默回收

数据来源与参考

  • man 7 tcp(SO_KEEPALIVE)
  • Linux 内核 Documentation/admin-guide/sysctl/net.rst
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌