source

.hprof 파일을 분석하려면 어떻게 해야 하나요?

factcode 2022. 9. 15. 22:46
반응형

.hprof 파일을 분석하려면 어떻게 해야 하나요?

운영 서버가 다음 플래그를 사용하여 실행되고 있습니다. -XX:+HeapDumpOnOutOfMemoryError

어젯밤 서버에 힙에러가 발생했을 때 java-38942.hprof 파일이 생성되었습니다.이 시스템의 개발자들은 국기에 대해 알고 있었지만 그것으로부터 유용한 정보를 얻을 수 있는 방법은 없었던 것으로 밝혀졌다.

좋은 생각 있어요?

상당히 고도의 툴을 사용하여 문제를 해결하려면 SAP에서 제공하는 Eclipse의 Memory Analyzer 프로젝트를 참조하십시오.

메모리 내의 오브젝트에 대해 제한된 SQL(OQL)을 실행하는 등 메모리 누수 검출에 매우 도움이 되는 것도 있습니다.

toString(firstName) FROM을 선택합니다.귀사에 문의하시기 바랍니다.패키지가 있어요.사용자

정말 훌륭해.

JDK와 함께 기본적으로 제공되는 Java 힙 분석 도구인 JHAT를 사용할 수 있습니다.명령줄이지만 메모리 검사에 사용하는 웹 서버/브라우저를 시작합니다.가장 사용하기 쉬운 것은 아니지만, 적어도 여러분이 갈 대부분의 장소에는 이미 설치되어 있습니다.가장 아래에 있는 "히프 히스토그램" 링크가 매우 유용합니다.

예:jhat -port 7401 -J-Xmx4G dump.hprof

jhat"요즘"도 OQL을 실행할 수 있습니다(아래 링크 "Execute OQL").

Netbeans Profiler 또는 Visual VM 독립 실행형 도구에서 HeapWalker를 사용할 수도 있습니다.Visual VM은 독립형이기 때문에 JHAT의 좋은 대안이지만 JHAT보다 훨씬 사용하기 쉽습니다.

Visual VM을 완전히 사용하려면 Java 6+가 필요합니다.

이클립스 메모리 아나라이저만 가져오면 돼.밖에 더 좋은 것은 없고 무료입니다.

JHAT는 "장난감 애플리케이션"에서만 사용 가능

저는 개인적으로 Visual VM을 선호합니다.VisualVM에서 마음에 드는 기능 중 하나는 힙 덤프 비교입니다.힙 덤프 분석을 수행할 때 크래시의 원인을 파악하는 방법은 다양합니다.유용한 방법 중 하나는 정상 힙 덤프와 비정상 힙 덤프를 비교하는 것입니다.

다음에, 그 순서를 나타냅니다.

  1. Out Of Memory Error 힙 덤프를 가져오면 "oome.hprof"라고 부릅니다.이는 JVM 매개 변수 HeapDumpOnOutOfMemoryError를 통해 얻을 수 있습니다.
  2. 애플리케이션을 재기동합니다.어플리케이션에 따라서는, 몇분간(분/시간) 실행됩니다.응용 프로그램이 실행 중일 때 다른 힙 덤프를 가져옵니다."healthy.hprof"라고 부르자.
  3. 이러한 두 덤프를 VisualVM에서 열고 힙 덤프를 비교할 수 있습니다.클래스 레벨 또는 패키지 레벨로 실행할 수 있습니다.이를 통해 문제의 방향을 파악할 수 있는 경우가 많습니다.

링크 : https://visualvm.github.io

yourKit Java Profiler도 이러한 문제를 처리하는 것 같습니다.

힙덤프를 커스텀 분석하려면 다음과 같이 하십시오.

이 라이브러리는 빠르지만 분석 코드를 Java로 작성해야 합니다.

문서에서:

  • 디스크에 힙 덤프를 처리할 임시 파일을 생성하지 않습니다.
  • GZ 압축 힙 덤프를 직접 사용할 수 있습니다.
  • HeapPath 표기법

언급URL : https://stackoverflow.com/questions/185893/how-do-i-analyze-a-hprof-file

반응형