내가 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=50
및 Dsun.rmi.dgc.server.gcInterval=43200000 -Dsun.rmi.dgc.client.gcInterval=43200000
힙 덤프 분석 -
의 GC 간격으로 구성 GC와 maxmimum 힙 크기 -Xms4096m -Xmx4096m -Xmn1024m
의 4 기가있는 응용 프로그램을 실행하고 있습니다에서 OutOfMemory 예외의 근본 원인을 찾기가 갑자기 내 응용 프로그램의 메모리가 힙 갔다 예외와 나는 같은 기회에 스레드 덤프와 힙 덤프를했다. 스레드 덤프를 분석 할 때 hashMap 및 arrayList에 값을 생성하여 스레드가 멈 춥니 다. ByteArrayOutStream 스레드 중 하나에서 잠금을 만들었습니다.
이클립스 메모리 분석기 도구에서 힙 덤프를 분석하는 경우 bytearray 개체가 거의 1 힙의 힙을 차지하고 있음을 분명히 알 수 있습니다. GCViewer에서는 초 단위의 피크가 있음을 보여줍니다. 나는 왜 갑자기 Byte Array 객체가 1 기가의 공간을 사용했는지에 대한 단서가 적다. 범인을 좁히기 위해 나를 도와 줄 수 있습니까?
는- 응용 프로그램 서버 - 웹 로직 12C 이클립스 메모리 분석기 도구에서 힙 덤프를 분석에
제공되는 정보로 말하기가 어렵습니다. 소비하는 메모리 코드에 대해 더 자세히 설명해 주시겠습니까? – Minh
그냥 바이트 배열을 아는 것이 도움이되지 않습니다. 무엇이 잘못되었는지 알기 위해 배열을 사용하는 응용 프로그램의 객체를 찾아야합니다. MAT를 사용하면 계층 구조를 포함하는 객체로 이동할 수 있습니다. –
더 많은 코드 정보가 도움이 될 것입니다. 제공되는 jvm 플래그를 사용하여 기본 응용 프로그램을 실행해도 아무 것도 복제하지 않습니다. –