- Published on
백엔드 로그에는 아무 오류가 없는데 로드밸런서에서만 간헐적으로 502가 섞여 나온다면 대부분 커넥션 재사용 경쟁 조건입니다. 서버가 유휴 커넥션을 닫는 바로 그 순간 클라이언트가 그 커넥션에 요청을 쓰면 FIN과 요청이 엇갈립니다. 왜 백엔드 keepalive 타임아웃을 로드밸런서 유휴 타임아웃보다 길게 잡아야 하는지, curl -w로 namelookup과 connect와 appconnect와 starttransfer를 나눠 병목을 특정하는 법, 리틀의 법칙으로 커넥션 풀 크기를 정하는 법, 그리고 TIME_WAIT이 실제로 문제가 되는 조건과 되지 않는 조건을 정리합니다.