一次 TCP 参数调优的记录

2026-10-28

最近线上服务偶发连接重置,排查过程比想象中绕,记录一下。

现象

高峰期偶发 connection reset by peer,但服务端负载并不高,CPU 和内存都在正常范围。

排查

先从内核连接队列看起。半连接队列和全连接队列都能通过 ss -lnt 的 Send-Q 观察到溢出情况。

ss -lnt | head -20
netstat -s | grep -i -E "listen|overflow|drop"

发现有轻微的 accept 队列溢出。把 somaxconn 从 128 调大到 1024 后,溢出计数不再增长。

后续参数

顺带调整了几个和回收相关的参数,注意不要盲目照抄,要结合自己的 RTT 来算:

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_tw_buckets = 262144
net.core.somaxconn = 1024
net.ipv4.tcp_fastopen = 3

调整后观察了两周,重置问题没再复现。

← 返回首页