이 기사는 리눅스 커널에 도입될 예정인 '지연된 THP 삽입(deferred THP insertion)' 기능에 대해 다루고 있으며, 이는 투명한 대용량 페이지(Transparent Huge Pages, THP)와 관련된 메모리 낭비를 줄이는 것을 목표로 합니다. 새로운 설정인 'transparent_hugepage=defer'는 THP를 항상 활성화하는 것과 madvise 옵션을 사용하는 것 사이의 절충안으로 작용합니다. 이 변경 사항은 MySQL과 같은 워크로드 및 jemalloc과 같은 메모리 할당기를 사용할 때 특히 중요하며, 이전 버전의 THP는 메모리 사용량 증가와 성능 문제를 초래했습니다.
지연된 설정은 대용량 페이지를 위해 설계된 애플리케이션이 이를 효과적으로 활용할 수 있도록 하며, 대용량 페이지를 특별히 요청하지 않는 애플리케이션도 과도한 메모리 낭비 없이 이를 이롭게 사용할 수 있게 합니다. 이 메커니즘은 커널의 페이지 폴트 핸들러가 필요할 때 대용량 페이지를 생성할 수 있도록 하며, 그렇지 않은 경우 기본 크기 할당으로 돌아갑니다. 이러한 접근 방식은 THP의 공격적인 삽입을 지연시켜 메모리 낭비를 최소화하고, khugepaged 프로세스가 필요할 때 적합한 페이지를 통합하여 메모리를 보다 효율적으로 관리할 수 있도록 합니다.
이 기능은 높은 대기 시간 페이지 폴트를 경험하는 애플리케이션의 성능을 개선할 것으로 예상되며, 메모리가 최적화된 후에는 대용량 페이지의 이점을 제공할 수 있습니다. 전반적으로 지연된 THP 삽입의 도입은 리눅스 커널 내 메모리 관리의 중요한 발전을 나타내며, 이전의 메모리 사용 및 성능 저하에 대한 우려를 해결합니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.