인프라 & 클라우드 · 심화
대규모 I/O 부하가 발생하는 환경에서 ext4와 XFS 파일 시스템 중 어떤 것을 선택할 것이며, 그 이유와 각 파일 시스템의 내부 구조 및 성능 특성 차이를 설명해주세요. 특히 저널링 방식의 차이점을 포함하여 설명하십시오.
힌트 · ext4는 작은 파일에 효율적이고 안정성이 높으며, XFS는 대용량 파일과 디렉토리에 최적화되어 있습니다. 저널링 방식(데이터 저널링, 메타데이터 저널링)의 차이가 성능과 복구에 영향을 미칩니다.
ext4XFS저널링B-TreeExtent
모범답안
대규모 I/O 부하 환경에서는 XFS를 선택하겠습니다.
XFS는 대용량 파일 및 디렉토리 처리에 최적화되어 있으며, Extent 기반 할당 방식을 사용하여 파일 조각화를 줄이고 연속적인 I/O 성능을 높입니다. 또한, XFS는 메타데이터 저널링 방식을 사용하여 데이터 무결성을 보장하면서도 ext4의 데이터 저널링 방식보다 오버헤드가 적어 높은 I/O 처리량을 유지할 수 있습니다.
ext4는 작은 파일 처리에 강점이 있고 안정성이 높지만, 대규모 I/O 환경에서는 XFS의 Extent 기반 할당과 효율적인 저널링 방식이 더 유리합니다. ext4는 B-Tree 구조를 사용하며, 저널링 시 데이터와 메타데이터 모두를 기록하는 방식(데이터 저널링)을 선택할 수 있어 복구 시 안전하지만, I/O 성능 저하의 원인이 될 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Linux 면접 질문
- `apt`나 `yum`과 같은 패키지 관리자가 소프트웨어 패키지 설치 시 의존성 문제를 어떻게 해결하는지 그 원리를 설명해 주세요. 또한, 특정 패키지의 의존성 목록을 확인하는 방법을 제시해 주세요.
- `systemd` 기반 시스템에서 `journalctl` 명령어를 사용하여 시스템 로그를 효과적으로 조회하고 분석하는 방법을 설명해 주세요. 특히, 특정 서비스의 로그만 확인하거나 특정 시간 범위의 로그를 필터링하는 방법을 구체적인 예시와 함께 제시해 주세요.
- Linux 커널의 cgroups와 namespaces가 컨테이너 기술(예: Docker, Kubernetes)의 핵심 구성 요소인 이유를 설명하고, 이 두 기술이 어떻게 상호작용하여 프로세스 격리 및 리소스 제한을 구현하는지 구체적으로 설명해주세요.
- 고성능 웹 서버 환경에서 TCP/IP 스택을 튜닝하여 네트워크 지연 시간을 줄이고 처리량을 극대화하기 위한 커널 파라미터(sysctl) 설정과 그 효과에 대해 구체적으로 설명해주세요. 주요 파라미터 3가지 이상을 예시로 들어 설명하십시오.
- Linux 커널에서 시스템 호출(syscall)의 성능 병목 현상을 진단하고 최적화하기 위한 고급 도구와 기법(예: eBPF, perf, ftrace)에 대해 설명하고, 실제 시나리오에서 어떻게 활용할지 예를 들어주세요.
- 시스템 메모리가 부족해지는 상황에서 Linux 커널의 OOM Killer가 동작하는 방식과 OOM Score의 의미, 그리고 스와핑(swapping) 메커니즘이 시스템 성능에 미치는 영향 및 최적화 방안에 대해 설명해주세요.