Zettelkasten

웹소켓 서버에서의 포트 고갈 문제(port exhaustion problem)와 해결 방식

·수정 2026.04.24·수정 4

요약

  • 웹소켓 클러스터를 HAProxy로 로드 밸런싱할 때 발생할 수 있는 문제
  • 수백만개의 소켓을 HAProxy 한대로 로드밸런싱하면 

본문

  • 로드 밸런서는 클라이언트와 서버사이에서 각각 서버, 클라이언트 역할을 함
  • 클라이언트에서 요청이오면 서버와 TCP 커넥션을 맺기 위해 TCP 클라이언트를 만듦
  • TCP 클라이언트는 서버로 부터 데이터를 받기 위해 커널로 부터 ephemeral port를 할당 받는데 여러이유로 해당 포트가 고갈 될 수 있음
  • 먼저 ephemeral port로 할당 가능한 포트 범위는 28k ~ 60k 정도인데 linux는 아래에서 확인이 가능함
    • /proc/sys/net/ipv4/ip_local_port_range

참고

이 문서를 참조하는 노트 (1)