패스잇
CS 기초 · 심화

NUMA(Non-Uniform Memory Access) 아키텍처 환경에서 애플리케이션의 메모리 접근 성능을 최적화하기 위한 OS 수준의 고려사항과 구체적인 전략에 대해 설명해 주십시오. 특히, 메모리 할당 정책과 스케줄링 관점에서 어떤 최적화 기법을 적용할 수 있을까요?

힌트 · `numactl`과 같은 도구를 활용한 프로세스-메모리 바인딩, 페이지 마이그레이션 정책, 그리고 캐시 일관성 유지를 위한 OS의 역할을 중심으로 설명해야 합니다.

NUMA 인식로컬 메모리 할당CPU affinity페이지 마이그레이션스케줄링 정책

모범답안

NUMA 환경에서 애플리케이션 성능 최적화는 핵심입니다. OS 수준에서 가장 중요한 건 NUMA 인식입니다. 프로세스가 실행되는 CPU 코어와 가장 가까운 메모리 노드에 데이터를 할당하는 로컬 메모리 할당이 기본입니다.

이를 위해 numactl 같은 도구를 사용해서 프로세스와 메모리 노드를 바인딩할 수 있습니다. 예를 들어, 특정 프로세스를 0번 노드에서 실행하고, 메모리도 0번 노드에 할당하도록 지정하는 거죠.

스케줄링 측면에서는 CPU affinity를 활용합니다. 특정 프로세스를 특정 CPU 코어에 고정시켜서, 메모리 접근 거리를 최소화하는 겁니다.

만약 프로세스가 여러 노드의 메모리에 접근해야 한다면, 페이지 마이그레이션 정책을 고려해야 합니다. 자주 사용되는 페이지를 프로세스가 실행되는 노드로 옮겨서 성능을 향상시킬 수 있습니다. 물론, 캐시 일관성 유지는 OS의 중요한 역할입니다.

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

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

함께 보는 운영체제 면접 질문

← 운영체제 면접 질문 전체 보기