원시 메모리가 부족한 가상 서버 (VM)에 문제가 있습니다. 이러한 VM을 실행 : 리눅스 7.2 (Maipo) 제이보스는 9.0.1 자바 1.8.0._151 (. 다른 JVM에 다른 힙 크기를 가지고 그들은 2G에 0.5G 범위) JVM을의 인수는 실행 :Java 8에서 Wildfly 9를 실행하는 동안 VM이 충돌 할 때까지 메모리 사용량이 증가합니다
-XX:+UseG1GC
-XX:SurvivorRatio=1
-XX:NewRatio=2
-XX:MaxTenuringThreshold=15
-XX:-UseAdaptiveSizePolicy
-XX:G1HeapRegionSize=16m
-XX:MaxMetaspaceSize=256m
-XX:CompressedClassSpaceSize=64m
-javaagent:/<path to new relic.jar>
약 한 달이 지나면 VM이 스왑 공간을 모두 사용하기 시작합니다. 결국 OOM-Killer는 Java가 너무 많은 메모리를 사용하여 JVM 중 하나를 죽인다는 사실을 알게됩니다.
메모리의 양이 자바 프로세스에서 사용되는 힙보다 큰 + metaSpace + -XX를 사용하여 계시 압축 : NativeMemoryTracking = 세부
이 기본 메모리에 무엇인지 말해 줄 수있는 도구 (가 있습니까 힙 덤프와 같지만 힙은 아님)?
jemalloc이 아닌 원시 메모리 사용 (힙 외부)에 Java 힙 사용을 맵핑 할 수있는 도구가 있습니까? jemalloc을 사용하여이 작업을 시도했지만 그려진 그래프에는 16 진수 값과 사람이 읽을 수없는 클래스 이름 만 포함되어 있으므로 실제로 아무것도 얻을 수 없습니다. 어쩌면 내가 뭔가 잘못하고 있거나 다른 도구가 필요할 수도 있습니다.
의견을 보내 주시면 대단히 감사하겠습니다.
네이티브 bytebuffers는 아마도? – Holger