리눅스 6.15 커널은 메모리 관리 비효율성을 해결하여 부팅 시간을 개선하기 위한 "hugetlb_alloc_threads"라는 새로운 옵션을 도입했습니다. 메모리 용량이 증가함에 따라 전통적인 4k TLB(Translation Lookaside Buffer) 커버리지가 속도를 따라잡지 못해 성능 문제가 발생하고 있습니다. 예를 들어, 메타의 64G 웹 서버에서는 4k 페이지만 사용할 경우 실행 주기의 거의 20%가 TLB 미스를 처리하는 데 소요됩니다. 이는 고성능 컴퓨팅(HPC) 작업 부하에 대한 최적화에서 표준 애플리케이션에 대한 필수 요구 사항으로 전환되고 있는 대형 페이지의 필요성을 강조합니다.
이 기사에서는 투명 대형 페이지(Transparent Huge Pages, THP)의 배치를 방해하는 페이지 할당기 내의 단편화 문제를 언급하고 있습니다. 이 단편화는 더 큰 메모리 요청이 신속하게 처리되는 것을 방해할 수 있으며, 이는 성능 유지에 매우 중요합니다. 메타 서버에 대한 연구에서는 이동할 수 없는 할당이 전체 메모리의 7% 미만을 차지하지만 시스템의 2M 블록의 34%를 차지하고 있다는 사실이 발견되었습니다. 이 단편화 문제는 서버 가동 시간에 관계없이 작업 부하 실행의 첫 시간 내에 빠르게 발생할 수 있습니다.
"hugetlb_alloc_threads" 옵션의 도입은 이러한 문제에 대한 대응으로, 메모리 할당 효율성을 향상시키고 부팅 시간을 단축하는 것을 목표로 하고 있습니다. 이 개발은 대용량 메모리 시스템에서 메모리 관리의 중요한 병목 현상을 해결하여 전체 시스템 성능과 신뢰성을 개선하는 데 중요한 의미가 있습니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.