패스잇
인프라 & 클라우드 · 심화

고성능 웹 서버 환경에서 TCP/IP 스택을 튜닝하여 네트워크 지연 시간을 줄이고 처리량을 극대화하기 위한 커널 파라미터(sysctl) 설정과 그 효과에 대해 구체적으로 설명해주세요. 주요 파라미터 3가지 이상을 예시로 들어 설명하십시오.

힌트 · net.ipv4.tcp_tw_reuse, net.core.somaxconn, net.ipv4.tcp_max_syn_backlog 등과 같은 파라미터는 연결 관리, 버퍼 크기, 재전송 타이머 등에 영향을 미쳐 네트워크 성능을 개선합니다.

TCP KeepaliveCongestion Control Algorithmnet.core.somaxconnnet.ipv4.tcp_tw_reusenet.ipv4.tcp_window_scaling

모범답안

네, 고성능 웹 서버 환경에서 네트워크 지연 시간을 줄이고 처리량을 극대화하기 위해 TCP/IP 스택 튜닝은 매우 중요합니다. 몇 가지 핵심 커널 파라미터를 예시로 들어 설명드리겠습니다.

첫째, net.ipv4.tcp_tw_reuse는 TIME_WAIT 상태의 소켓을 재사용하도록 설정하여, 빠르게 연결을 맺고 끊는 웹 서버 환경에서 유용합니다. 이 값을 1로 설정하면 TIME_WAIT 상태의 소켓을 새로운 연결에 재사용할 수 있어 자원 고갈을 방지하고 연결 속도를 향상시킬 수 있습니다.

둘째, net.core.somaxconn은 LISTEN 상태의 소켓에 대해 대기할 수 있는 최대 연결 요청 수를 설정합니다. 기본값이 낮으면 갑작스러운 트래픽 증가 시 연결 요청이 손실될 수 있으므로, 웹 서버의 예상 트래픽에 맞춰 적절히 늘려주는 것이 좋습니다. 예를 들어 sysctl -w net.core.somaxconn=65535 와 같이 설정할 수 있습니다.

셋째, net.ipv4.tcp_max_syn_backlog는 SYN flood 공격을 방어하고, 동시에 처리할 수 있는 SYN 요청 수를 늘려줍니다. 이 값을 늘리면 SYN flood 공격에 대한 내성을 강화하고, 정상적인 연결 요청 처리 능력을 향상시킬 수 있습니다.

이 외에도 TCP Keepalive 설정, Congestion Control Algorithm 선택, net.ipv4.tcp_window_scaling 활성화 등 다양한 방법으로 네트워크 성능을 최적화할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Linux 면접 질문

← Linux 면접 질문 전체 보기