우리가 일반적으로 사용하는 JVM은 모두 32비트(64비트 JVM은 성능이 10~20% 손실되므로 일반적으로 권장되지 않음)이며, 32비트 프로그램의 주소 공간은 왜 Linux에서 4GB여야 합니까? JVM 메모리는 2GB만 사용할 수 있나요?
JDK R&D팀과 소통한 끝에 마침내 몇 가지 관련 이유를 알아냈습니다. 이 문제는 일부 초기 Linux 버전, 특히 커널 2.5 이전 버전에 존재합니다. 2.6 이후 버전에는 기본적으로 이 문제가 없습니다. 이들 Linux 버전에서는 프로세스에 대한 메모리 제한이 2GB로, 이는 연속된 주소를 갖는 메모리 블록 크기의 상한선이며, JVM의 힙 공간(힙 크기)에는 연속적인 주소 공간이 필요합니다. Java 프로세스의 이론적 사용.
Java 애플리케이션이 더 큰 메모리를 사용해야 하는 경우 최신 버전의 Linux를 사용하거나 Linux 애플리케이션/커널 메모리 비율 구성을 3GB:1GB로 수정하는 것이 좋습니다. Solaris와 같은 UNIX 운영 체제를 선택할 수도 있습니다. Solaris와 같은 운영 체제에서는 JVM 메모리 관리에 2GB 제한이 없으므로 힙 크기를 약 3.5~3.6GB로 설정할 수 있습니다.
리눅스 시스템의 JVM 메모리 상한 2GB에 대한 자세한 설명은 PHP 중국어 홈페이지를 참고해주세요!