인프라 & 클라우드 · 심화
Linux 커널의 cgroups와 namespaces가 컨테이너 기술(예: Docker, Kubernetes)의 핵심 구성 요소인 이유를 설명하고, 이 두 기술이 어떻게 상호작용하여 프로세스 격리 및 리소스 제한을 구현하는지 구체적으로 설명해주세요.
힌트 · cgroups는 리소스 사용량을 제어하고 격리하며, namespaces는 프로세스, 네트워크, 파일 시스템 등의 격리된 뷰를 제공합니다. 이 둘이 결합되어 컨테이너 환경을 만듭니다.
cgroupsnamespaces컨테이너 격리리소스 제한커널 기능
모범답안
네, 이해했습니다. 면접에서 답변하는 것처럼 자연스럽고 간결하게 작성해보겠습니다.
cgroups와 namespaces는 컨테이너 기술의 핵심입니다. namespaces는 프로세스, 네트워크, 파일 시스템 등을 격리하여 컨테이너가 마치 독립된 시스템처럼 보이게 합니다. 예를 들어, PID namespace를 사용하면 컨테이너 내부의 프로세스는 PID 1번부터 시작할 수 있습니다.
cgroups는 CPU, 메모리, I/O 등 시스템 리소스 사용량을 제한하고 격리합니다. 컨테이너가 과도하게 리소스를 사용하는 것을 방지하여 다른 컨테이너나 호스트 시스템에 영향을 주지 않도록 합니다.
이 둘은 함께 작동하여 컨테이너 격리를 구현합니다. namespaces로 격리된 환경을 만들고, cgroups로 리소스 사용량을 제한하는 것이죠. Docker나 Kubernetes 같은 컨테이너 런타임은 이 두 가지 커널 기능을 활용하여 컨테이너를 실행하고 관리합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Linux 면접 질문
- LVM(Logical Volume Manager)의 개념과 일반적인 파티셔닝 방식에 비해 LVM이 가지는 장점을 설명해 주세요. 또한, LVM을 사용하여 기존 논리 볼륨의 크기를 확장하는 절차를 간략히 설명해 주세요.
- `apt`나 `yum`과 같은 패키지 관리자가 소프트웨어 패키지 설치 시 의존성 문제를 어떻게 해결하는지 그 원리를 설명해 주세요. 또한, 특정 패키지의 의존성 목록을 확인하는 방법을 제시해 주세요.
- `systemd` 기반 시스템에서 `journalctl` 명령어를 사용하여 시스템 로그를 효과적으로 조회하고 분석하는 방법을 설명해 주세요. 특히, 특정 서비스의 로그만 확인하거나 특정 시간 범위의 로그를 필터링하는 방법을 구체적인 예시와 함께 제시해 주세요.
- 대규모 I/O 부하가 발생하는 환경에서 ext4와 XFS 파일 시스템 중 어떤 것을 선택할 것이며, 그 이유와 각 파일 시스템의 내부 구조 및 성능 특성 차이를 설명해주세요. 특히 저널링 방식의 차이점을 포함하여 설명하십시오.
- 고성능 웹 서버 환경에서 TCP/IP 스택을 튜닝하여 네트워크 지연 시간을 줄이고 처리량을 극대화하기 위한 커널 파라미터(sysctl) 설정과 그 효과에 대해 구체적으로 설명해주세요. 주요 파라미터 3가지 이상을 예시로 들어 설명하십시오.
- Linux 커널에서 시스템 호출(syscall)의 성능 병목 현상을 진단하고 최적화하기 위한 고급 도구와 기법(예: eBPF, perf, ftrace)에 대해 설명하고, 실제 시나리오에서 어떻게 활용할지 예를 들어주세요.