나는 호스팅 중자바 서버 애플리케이션Linux 루트 서버에서.
내 문제는 때때로 서버가할당된 최대값보다 더 많은 RAM을 차지합니다., 이로 인해 프로세스가 자동으로 종료(충돌)됩니다.
이것은 내 시작 스크립트입니다.
nohup java -Xmx900m -Xms900m -XX:MaxPermSize=128m -jar -Xss1m jar-file.jar &
보시다시피 최소, 최대 RAM(-Xms900, -Xmx900m)도 설정해두었으니 문제 없을 것 같습니다.
내가 뭘 잘못하고 있는지 아는 사람 있나요? 그렇다면 "개선된 시작 스크립트"를 알려주고 보여주세요.
행운을 빕니다, 이시드레스
답변1
실제로 Xms 및 Xmx는 힙 크기 제한을 결정하지만 다른 메모리 영역도 있습니다. 스택(Xss x 스레드 수) + PermGen + CodeCache(Java 7의 기본값 48MB) + 직접 메모리.
일반적으로 사양이 없으면 약 1/2GB 더 많을 것입니다.