시스템 메모리가 부족해지는 상황에서 Linux 커널의 OOM Killer가 동작하는 방식과 OOM Score의 의미, 그리고 스와핑(swapping) 메커니즘이 시스템 성능에 미치는 영향 및 최적화 방안에 대해 설명해주세요.
힌트 · OOM Killer는 시스템 안정성을 위해 특정 프로세스를 강제 종료하며, OOM Score는 종료될 우선순위를 나타냅니다. 스와핑은 디스크 I/O를 유발하여 성능 저하를 가져올 수 있으므로 swappiness 조절 등을 통해 최적화합니다.
모범답안
네, 말씀하신 내용에 대해 설명드리겠습니다.
Linux 커널에서 메모리가 부족해지면 OOM (Out Of Memory) Killer가 동작합니다. OOM Killer는 시스템의 안정성을 위해 메모리를 가장 많이 사용하거나, 중요도가 낮은 프로세스를 강제로 종료하여 메모리를 확보합니다.
OOM Score는 각 프로세스에 할당되는 점수로, OOM Killer가 어떤 프로세스를 먼저 종료할지 결정하는 기준이 됩니다. 점수가 높을수록 종료될 가능성이 높습니다. OOM Score는 프로세스의 메모리 사용량, 실행 시간, 권한 등을 고려하여 계산됩니다.
스와핑은 RAM의 내용을 디스크로 옮겨 RAM 공간을 확보하는 메커니즘입니다. 메모리가 부족할 때 유용하지만, 디스크 I/O는 RAM 접근보다 훨씬 느리기 때문에 시스템 성능 저하를 유발합니다.
스와핑 성능 최적화는 swappiness 값을 조절하는 방식으로 이루어집니다. swappiness는 커널이 RAM의 내용을 얼마나 적극적으로 스왑 공간으로 옮길지 결정하는 파라미터입니다. 값이 낮을수록 스와핑을 덜 사용하고, 높을수록 더 적극적으로 사용합니다. 일반적으로 서버 환경에서는 swappiness 값을 낮춰 스와핑을 최소화하고, 메모리 부족 상황을 최대한 늦추는 것이 좋습니다. 예를 들어, sysctl vm.swappiness=10과 같이 설정할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Linux 면접 질문
- 대규모 I/O 부하가 발생하는 환경에서 ext4와 XFS 파일 시스템 중 어떤 것을 선택할 것이며, 그 이유와 각 파일 시스템의 내부 구조 및 성능 특성 차이를 설명해주세요. 특히 저널링 방식의 차이점을 포함하여 설명하십시오.
- 고성능 웹 서버 환경에서 TCP/IP 스택을 튜닝하여 네트워크 지연 시간을 줄이고 처리량을 극대화하기 위한 커널 파라미터(sysctl) 설정과 그 효과에 대해 구체적으로 설명해주세요. 주요 파라미터 3가지 이상을 예시로 들어 설명하십시오.
- Linux 커널에서 시스템 호출(syscall)의 성능 병목 현상을 진단하고 최적화하기 위한 고급 도구와 기법(예: eBPF, perf, ftrace)에 대해 설명하고, 실제 시나리오에서 어떻게 활용할지 예를 들어주세요.
- SELinux와 AppArmor 같은 강제적 접근 제어(MAC) 시스템이 기존 DAC(Discretionary Access Control) 방식과 어떻게 다르며, 실제 운영 환경에서 이들을 효과적으로 적용하고 관리하기 위한 전략과 트러블슈팅 기법에 대해 설명해주세요.
- systemd의 복잡한 서비스 의존성 관리 및 부팅 프로세스 최적화를 위해 .target 파일과 .service 파일의 관계를 설명하고, 사용자 정의 서비스 유닛을 작성할 때 고려해야 할 고급 옵션과 시나리오를 제시해주세요.