메모리 매핑된 모델 파일은 프로세스가 운영 체제 페이지 캐시를 통해 동일한 깨끗한 파일 기반 페이지를 참조하므로 중복 RAM 사용량을 줄일 수 있습니다.
로컬 모델 워커 두 개를 로드한다고 해서 물리 메모리에 가중치 파일의 완전한 사본 두 개가 항상 필요한 것은 아닙니다. 메모리 매핑을 사용하면 각 프로세스는 파일 오프셋에 연결된 가상 주소를 받고 페이지는 필요할 때 로드됩니다. 운영 체제는 동일한 깨끗한 페이지를 캐시된 하나의 물리적 사본으로 제공하면서 각 프로세스의 전용 런타임 상태는 별도로 유지할 수 있습니다.
메모리 매핑은 가상 주소를 파일 오프셋에 연결합니다
매핑된 파일은 애플리케이션이 전체 파일을 별도의 힙 버퍼로 읽지 않아도 프로세스 주소 공간 안에 표시됩니다. 존재하지 않는 페이지에 접근하면 페이지 폴트가 발생하고, 커널은 해당 파일 기반 페이지를 로드하거나 찾은 뒤 프로세스 페이지 테이블을 업데이트합니다.
Linux 메모리 매핑 매뉴얼은 MAP_SHARED 및 MAP_PRIVATE 매핑과 매핑된 업데이트와 기반 객체 간의 관계를 설명합니다. 읽기 전용 모델 가중치는 일반적으로 깨끗한 파일 기반 데이터로 유지되므로 페이지 캐시를 재사용할 수 있습니다. 이러한 구분은 실제 가정용 운영 환경에서도 여전히 중요합니다.
요구 페이징은 모델의 일부만 사용될 때 시작 시간을 단축하고 상주 메모리를 제한할 수 있습니다. 그러나 비용이 최초 접근 시점으로 이동할 수도 있으므로, 명시적인 로드 단계가 아니라 추론 중에 콜드 페이지 폴트와 스토리지 지연이 나타날 수 있습니다.
페이지 캐시는 여러 프로세스에 동시에 제공될 수 있습니다
두 프로세스는 동일한 모델 inode와 오프셋을 서로 다른 가상 주소 공간에 매핑할 수 있습니다. 두 프로세스가 동일한 깨끗한 페이지를 읽으면 커널은 동일한 캐시된 물리 페이지를 두 페이지 테이블에 모두 매핑할 수 있습니다. 가상 매핑은 서로 별개이지만 기반 상주 데이터는 공유될 수 있습니다.
페이지 매핑 데이터에 관한 Linux 문서는 액세스 제한에 따라 사용자 공간에서 페이지 매핑과 페이지 프레임 정보를 검사하는 방법을 설명합니다. 이러한 인터페이스는 겉보기에는 분리된 가상 영역이 실제로 공유 물리 페이지를 참조하는지 확인하는 데 도움이 됩니다. 이후 진단과 검토 과정에서도 중간 상태를 확인할 수 있어야 합니다.
따라서 프로세스별 RSS를 더하면 총 물리적 사용량이 과대평가될 수 있습니다. 공유 페이지가 각 프로세스에서 상주하는 것으로 표시되기 때문입니다. 비례 집합 크기(PSS)는 공유 페이지를 매핑에 따라 분배하므로 모델 워커의 전체 사용량을 추정할 때 일반적으로 더 유용합니다.
전용 상태와 더티 페이지는 여전히 늘어납니다
KV 캐시, 활성화, 할당자 아레나, 토크나이저 버퍼, 요청 상태는 워커 또는 세션마다 생성됩니다. 전용 매핑을 통해 쓰기가 발생하면 기록 시 복사(copy-on-write)가 실행되어 더 이상 깨끗한 파일 기반 사본과 공유할 수 없는 익명 페이지가 생성됩니다. 서로 다른 파일 버전도 재사용을 방해합니다.
Linux smaps 매뉴얼은 각 매핑의 전용, 공유, 깨끗한, 더티 상태와 smaps 매뉴얼을 분류합니다. 이러한 범주는 두 워커가 가중치를 공유하더라도 동시성과 컨텍스트 길이가 증가하면 상당한 추가 메모리가 나타날 수 있는 이유를 설명합니다.
핵심은 매핑이 중복되는 깨끗한 가중치를 줄일 뿐 전체 추론 메모리를 줄이는 것은 아니라는 점입니다. 네트워크로 마운트된 모델 파일은 불안정한 페이지 폴트 지연을 일으킬 수 있으며, 압축 해제 또는 변환 로더가 두 번째 압축 해제 표현을 할당하면 예상한 공유 효과가 사라질 수 있습니다.
단일 워커와 매핑된 워커 두 개 비교하기
콜드 캐시에서 시작해 모델 워커 하나를 실행하고 고정된 프롬프트를 수행한 다음 시작 시간, 페이지 폴트, RSS, PSS, 전용 더티 메모리를 기록합니다. 모델 파일이나 로더 플래그를 변경하지 않은 상태에서 동일한 두 번째 워커를 실행하고 반복합니다.
결과를 압축의 장단점과 연관 지어 해석하세요. 파일 크기가 작으면 스토리지에 도움이 되지만, 매핑의 이점은 실제로 사용되는 메모리 내 표현에 따라 달라집니다. 하나의 프로세스 총량에 의존하지 말고 smaps에서 각 모델 매핑을 검사하세요.
두 번째 워커가 첫 번째 워커보다 훨씬 적은 가중치 메모리를 추가하면서 동일한 출력을 내고 콜드 지연도 허용 가능한 수준이면 성공으로 판단합니다. PSS가 거의 두 배로 증가한다면 mmap이 효과가 없다고 단정하기 전에 파일 식별자, 쓰기 가능한 매핑, 압축 해제, 숨겨진 사본을 확인하세요.
기술 및 AI 허브
더 읽어보기

비공개 검색 점수 보정: 원시 유사도가 활용 가능한 신뢰도 신호로 변환되는 과정
코사인 유사도가 신뢰도가 아닌 이유, 레이블이 지정된 쿼리로 점수를 보정하는 방법, 그리고 비공개 코퍼스가 변경될 때 임계값을 모니터링하는 방법을 알아보세요.

로컬 AI NUMA 로컬리티: 메모리 배치가 가속기 공급 속도를 바꾸는 이유
CPU, RAM, PCIe 토폴로지가 가속기 데이터 공급에 어떤 영향을 미치는지, 자동 배치 결과가 달라질 수 있는 이유, 그리고 NUMA 바인딩을 안전하게 벤치마킹하는 방법을 알아보세요.

프라이빗 AI 감사 추적: 이벤트 로그로 에이전트의 의사 결정을 재구성하는 방법
에이전트 감사 추적 기록에 반드시 포함해야 할 내용, 일반 로그가 불완전한 이유, 원시 데이터를 노출하지 않고 비공개 워크플로를 재현하는 방법을 알아보세요.

