최대 프로세스 크기는 어디에 지정됩니까?

최대 프로세스 크기는 어디에 지정됩니까?

나는 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으로 직접 업그레이드할 수도 있습니다.

관련 정보