Java 8 애플리케이션 (SceneBuilder)의 메모리 사용량 제한


0

JavaFX Scene Builder에서 메모리 누수에 문제가 있습니다. 버그 보고서를 제출했지만 그 동안 Scene Builder에서 10GB 이상을 사용함에 따라 시스템이 너무 느려질 수 있습니다.

임시 수정으로 사용할 수있는 메모리 양을 제한하고 싶습니다. JVMBuilds 아래의 SceneBuilder.cfg에서 다음을 설정하려고 시도했습니다.

-XX:InitialHeapSize=256m
-XX:MaxHeapSize=256m
-XX:MaxMetaspaceSize=256m

jps 인수가 프로세스에 전달되는지 확인합니다.

3052  -Djava.library.path=/opt/SceneBuilder/app:/opt/SceneBuilder -Djava.launcher.path=/opt/SceneBuilder -Dapp.preferences.id=com/oracle/javafx/scenebuilder/app -XX:InitialHeapSize=256m -XX:MaxHeapSize=256m -XX:MaxMetaspaceSize=256m

그러나 메모리 사용량이 256MB 이상으로 빠르게 증가하여 6GB 이상을 빠르게 초과합니다.

Java 프로세스에서 사용되는 메모리 양을 실제로 제한하는 방법이 있습니까?

편집 : 나는 사용하려고 시도했다 ulimit:

ulimit -d 1024000 -v 1024000 -m 1024000

그러나 시작하려고 할 때 오류가 발생합니다.

Error occurred during initialization of VM
Could not allocate metaspace: 1073741824 bytes

이것은 Java가 실제로 MetaspaceSize 매개 변수를 무시한다는 것을 나타냅니다. Java 8에서 메모리를 제한하는 다른 방법이 있습니까?

답변:


0

유닉스 기반 운영 체제에 있다고 가정합니다.

  1. 프로그램을 다른 사용자로 실행 /etc/security/limits.conf하고이 계정에 정의 된 제한을 시행 할 수 있습니다. 또한 일반 사용자 계정에 더 많은 리소스를 예약 할 수 있습니다.

  2. timeout 과 같은 도구를 사용하여 프로세스를 케이 징 할 수 있습니다 .

그러나 ulimit가 도움이되지 않기 때문에 프로세스 충돌 (메모리를 할당 할 수 없음) 또는 시스템에 의해 종료 될 수 있습니다.

또한 비슷한 질문이므로 https://unix.stackexchange.com/questions/44985/limit-memory-usage-for-a-single-linux-process를 확인하십시오 .

편집 : 메타 공간 제한은 무시됩니다. 대답은 여기 https://stackoverflow.com/questions/31075761/java-8-reserves-minimum-1g-for-metaspace-despite-maxmetaspacesize

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.