리눅스를 위한 경량 가드 페이지: 메모리 매핑 호출에서 5배 속도 향상

전문: https://www.phoronix.com/news/Linux-Lightweight-Guard-Pages

원저자: Michael Larabel | 작성일: 2024-10-20 10:38
사이트 내 게시일: 2024-10-20 10:48
이 기사는 리눅스에서 가드 페이지를 구현하는 새로운 접근 방식에 대해 논의합니다. 가드 페이지는 메모리 할당기 및 스레드 구현과 같은 사용자 공간 라이브러리 함수에 필수적입니다. 전통적으로 가드 페이지는 PROT_NONE mmap() 매핑을 사용하여 생성되며, 이로 인해 각 영역에 대한 가상 메모리 영역(Virtual Memory Area, VMA) 할당으로 인한 오버헤드가 발생합니다. 이는 많은 프로세스와 스레드가 있을 경우 상당한 메모리 손실을 초래하고, 잠재적인 메모리 병합을 방해할 수 있습니다.

제안된 방법은 Vlasimil Babka와 다른 연구자들에게서 영감을 받아, 가드 페이지를 VMA 계층이 아닌 페이지 테이블에 직접 배치하는 것을 제안합니다. 이 프로토타입의 초기 테스트 결과, process_madvise()와 함께 사용할 경우 메모리 매핑 호출에서 놀라운 5배 속도 향상이 나타났으며, 최적화되지 않은 코드가 있는 유휴 안드로이드 시스템에서 VMAs가 13% 감소했습니다. 저자들은 추가 최적화와 더 많은 가드 페이지가 있는 더 높은 부하에서 이러한 성능 향상이 더욱 두드러질 것으로 예상하며, 이 혁신적인 접근 방식이 리눅스 시스템의 메모리 관리 향상에 기여할 수 있는 잠재력을 강조합니다.

* 이 글은 phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은 이곳에서 확인하실 수 있습니다.
카테고리: Software
태그: Linux (791) Performance Optimization (168) memory management (28) Guard Pages (1) Virtual Memory (1)

댓글

댓글을 쓰기 위해서는 로그인을 해 주세요.