고성능 웹 서버 환경에서 TCP/IP 스택을 튜닝하여 네트워크 지연 시간을 줄이고 처리량을 극대화하기 위한 커널 파라미터(sysctl) 설정과 그 효과에 대해 구체적으로 설명해주세요. 주요 파라미터 3가지 이상을 예시로 들어 설명하십시오.
힌트 · net.ipv4.tcp_tw_reuse, net.core.somaxconn, net.ipv4.tcp_max_syn_backlog 등과 같은 파라미터는 연결 관리, 버퍼 크기, 재전송 타이머 등에 영향을 미쳐 네트워크 성능을 개선합니다.
모범답안
네, 고성능 웹 서버 환경에서 네트워크 지연 시간을 줄이고 처리량을 극대화하기 위해 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 면접 질문
- `systemd` 기반 시스템에서 `journalctl` 명령어를 사용하여 시스템 로그를 효과적으로 조회하고 분석하는 방법을 설명해 주세요. 특히, 특정 서비스의 로그만 확인하거나 특정 시간 범위의 로그를 필터링하는 방법을 구체적인 예시와 함께 제시해 주세요.
- Linux 커널의 cgroups와 namespaces가 컨테이너 기술(예: Docker, Kubernetes)의 핵심 구성 요소인 이유를 설명하고, 이 두 기술이 어떻게 상호작용하여 프로세스 격리 및 리소스 제한을 구현하는지 구체적으로 설명해주세요.
- 대규모 I/O 부하가 발생하는 환경에서 ext4와 XFS 파일 시스템 중 어떤 것을 선택할 것이며, 그 이유와 각 파일 시스템의 내부 구조 및 성능 특성 차이를 설명해주세요. 특히 저널링 방식의 차이점을 포함하여 설명하십시오.
- Linux 커널에서 시스템 호출(syscall)의 성능 병목 현상을 진단하고 최적화하기 위한 고급 도구와 기법(예: eBPF, perf, ftrace)에 대해 설명하고, 실제 시나리오에서 어떻게 활용할지 예를 들어주세요.
- 시스템 메모리가 부족해지는 상황에서 Linux 커널의 OOM Killer가 동작하는 방식과 OOM Score의 의미, 그리고 스와핑(swapping) 메커니즘이 시스템 성능에 미치는 영향 및 최적화 방안에 대해 설명해주세요.
- SELinux와 AppArmor 같은 강제적 접근 제어(MAC) 시스템이 기존 DAC(Discretionary Access Control) 방식과 어떻게 다르며, 실제 운영 환경에서 이들을 효과적으로 적용하고 관리하기 위한 전략과 트러블슈팅 기법에 대해 설명해주세요.