나는 1TB의 RAM을 갖춘 RHEL4 시스템을 가지고 있으며 malloc과 mmap이 512GB 이상의 메모리 할당을 거부한다는 것을 발견했습니다. 한편, 내 RHEL5 시스템에는 문제가 없는 것 같습니다. 글쎄, 나는 그것이 단지 커널 구성의 문제라고 가정하고 있습니다. 최대 프로세스 크기(고정 페이지 크기 가정)를 제어하는 것이 무엇인지 아는 사람이 있습니까?
답변1
이것amd64용 Linux 초기 포트프로세스용 512GB와 커널용 512GB로 나누어진 40비트 가상 주소 공간만 지원합니다.현재 버전128TB/128TB로 나누어진 48비트 가상 주소 공간을 지원합니다. 마지막 제한은 amd64 아키텍처의 현재 버전에 내재되어 있습니다. 구성할 방법이 없습니다.메모리 관리 유닛더 많은 비트를 중요하게 만드세요. 바라보다Linux는 x86-64에서 512GB를 초과하는 가상 주소 범위를 어떻게 지원합니까?amd64 MMU에 대한 지침 또는AMD64 아키텍처 프로그래머 매뉴얼(§5.1) 전문을 읽어보세요.
이 제한이 언제 변경되었는지는 모르지만 2.6.9 커널은 정말 오래되었습니다. 레드햇 출시기능 및 제한 사항 표RHEL 3~RHEL 6의 경우. RHEL4의 프로세스당 최대 주소 공간은 512GB입니다. RHEL5는 2TB를 제공하지만 전체 128TB를 지원하는 RHEL6으로 직접 업그레이드할 수도 있습니다.