TCP tuning

TCP 튜닝은 수치보다 병목 신호를 먼저 나눠 본다

버퍼, RTT, 재전송, backlog, keepalive는 같은 문제가 아닙니다. 각 지표가 가리키는 병목을 분리해야 안전하게 조정할 수 있습니다.

항목
관찰 신호
나쁜 패턴
우선 조치
buffer
tcp_rmem, tcp_wmem, window scaling
고BDP 경로에서 처리량이 천장에 걸림
BDP 기준으로 버퍼 상한과 auto tuning 확인
RTT
ss -ti, 애플리케이션 응답 시간
지연이 증가하며 timeout이 뒤따름
서버 위치, CDN, 라우팅, 큐잉 지연 분리
retransmit
netstat -s, packet capture
손실 구간에서 처리량이 급락
무선/터널/혼잡 구간, MTU, 재시도 정책 확인
listen backlog
accept queue, SYN_RECV, connection timeout
연결 수립은 되지만 accept가 밀림
애플리케이션 accept 속도와 somaxconn 조정
keepalive
idle 연결, LB/NAT timeout, probe 로그
조용히 끊긴 연결을 오래 붙잡음
TCP keepalive와 애플리케이션 timeout을 함께 맞춤
순서: 수치부터 키우지 말고 TIME_WAIT, CLOSE_WAIT, RTT, retransmit, backlog 중 어느 신호가 먼저 나빠지는지 확인합니다.