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

Linux 커널에서 시스템 호출(syscall)의 성능 병목 현상을 진단하고 최적화하기 위한 고급 도구와 기법(예: eBPF, perf, ftrace)에 대해 설명하고, 실제 시나리오에서 어떻게 활용할지 예를 들어주세요.

힌트 · eBPF는 커널에서 안전하게 사용자 정의 프로그램을 실행하여 상세한 트레이싱을 가능하게 하며, perf는 CPU 성능 카운터를 활용하고, ftrace는 커널 함수 호출을 추적합니다.

eBPFperfftrace시스템 호출 오버헤드컨텍스트 스위칭

모범답안

시스템 호출 성능 병목 현상을 진단하고 최적화하는 데는 eBPF, perf, ftrace 같은 고급 도구를 활용합니다.

eBPF는 커널에 안전하게 사용자 정의 코드를 삽입하여 시스템 호출의 실행 시간, 인자 값 등을 실시간으로 추적할 수 있게 해줍니다. 예를 들어, 특정 시스템 호출의 빈도가 높거나 실행 시간이 길다면 eBPF 프로그램을 통해 해당 호출을 발생시키는 프로세스를 식별하고, 원인을 분석할 수 있습니다.

perf는 CPU 성능 카운터를 활용하여 시스템 전체의 성능 프로파일링을 수행합니다. 이를 통해 시스템 호출과 관련된 CPU 사용률, 캐시 미스 등을 파악하여 병목 지점을 찾을 수 있습니다.

ftrace는 커널 함수 호출을 추적하는 데 사용됩니다. 시스템 호출의 내부 동작을 자세히 분석하여 어떤 함수가 가장 많은 시간을 소모하는지, 어떤 경로로 실행되는지 등을 파악할 수 있습니다.

실제 시나리오에서는 웹 서버의 응답 시간이 느려지는 경우, eBPF를 사용하여 read 또는 write 시스템 호출의 오버헤드를 분석하고, perf를 통해 CPU 사용률을 확인하며, ftrace를 통해 네트워크 스택의 함수 호출 흐름을 추적하여 병목 지점을 찾아 해결할 수 있습니다. 컨텍스트 스위칭이 잦다면, 스케줄러 관련 정보를 eBPF로 추적하여 개선할 부분을 찾을 수 있습니다.

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

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

함께 보는 Linux 면접 질문

← Linux 면접 질문 전체 보기