首页/系统/Linux 内核与性能调优速查/应用侧 TCP keepalive 参数
本包目录(357 条)
sysctl 内核参数72 条CPU 与调度60 条内存与 OOM58 条磁盘与 IO32 条
网络栈调优98 条
性能分析工具37 条

应用侧 TCP keepalive 参数

在单个连接上开启保活并定制空闲、间隔与次数, 用于快速回收异常对端连接。

C 用例

C 用例
int one = 1, idle = 60, cnt = 3;
setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &one, sizeof(one));
setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &idle, sizeof(idle));
setsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT, &cnt, sizeof(cnt));
系统级 tcp_keepalive_* 只影响未单独设置的连接(且对新连接生效)。

易错点

  • 用保活代替应用层心跳, 无法满足业务的超时探测要求
  • 只改系统参数, 已有连接不受影响

数据来源与参考

  • man 7 tcp
  • man 7 socket
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌