512개 프로세스가 같은 페이지를 매핑하면 페이지 테이블이 데이터만큼 메모리를 먹는다
Page Table Memory Consumption
리눅스 커널에서 페이지 테이블 메모리 소비가 문제가 된 사례들을 정리한 글이다. 2002년 Andrea Arcangeli가 64GiB x86에서 lowmem 고갈을 겪은 사례, 2022년 Khalid Aziz가 512GB RAM 서버에서 300GB SGA를 공유하는 1500개 클라이언트 때문에 OOM이 발생한 사례, 2021년 Qi Zheng이 590GiB RSS에 110GiB 페이지 테이블을 보고한 사례 등이 소개된다. 공유 메모리를 매핑하는 프로세스가 많아질수록 각 프로세스가 별도 PTE를 가져 페이지 테이블 오버헤드가 커진다는 공통점을 지적한다.
일반적으로 말해, 동일한 PTE를 가진 512개의 프로세스를 실행하면 페이지 테이블이 데이터 페이지만큼의 메모리를 차지한다.