>  기사  >  Java  >  JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

不言
不言앞으로
2018-10-22 16:00:473538검색

이 기사의 내용은 JDK의 자체 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법에 대한 것입니다. 필요한 친구가 참고할 수 있기를 바랍니다.

Java 프로세스 실행을 위해 JDK에는 Java 개발자가 프로세스 내에서 생성된 개체 인스턴스 수, 소비되는 메모리 양 등 실행 중인 프로세스의 다양한 상태를 모니터링할 수 있는 많은 도구가 제공됩니다.

이 글은 JDK1.8을 기준으로 작성되었습니다.

아래에는 5초마다 카운터 값을 증가시키는 무한 루프가 포함된 가장 간단한 Java 클래스를 작성했습니다.

package jmap;
class Tool{
    private int count = 0;
    public void Run() throws InterruptedException{
        while(true){
            System.out.println("Hello: " + this.count++);
            Thread.sleep(5000);
        }
    }
}
public class JMapTest {
    public static void main(String[] args) throws InterruptedException {
        Tool tool = new Tool();
        tool.Run();
    }
}

Eclipse에서 이 애플리케이션을 실행하세요.

다음은 jmap과 jhat을 사용하여 실행 중인 프로세스를 모니터링하는 방법을 설명합니다.

1. 먼저 이 Java 실행 프로세스의 ID를 가져옵니다: 15392. 프로세스 ID를 얻기 위해 Windows와 함께 제공되는 작업 관리자를 직접 사용했습니다.

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

2 다음 명령줄을 사용하세요.

jmap -dump:format=b,file=c:tempheapstatus.bin 15392

jmap은 JDK에서 제공하는 도구이며 bin 폴더에 있습니다. JDK 설치 디렉토리 .

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

명령줄을 실행하면 힙 덤프 파일인 headstatus.bin

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

3이 생성됩니다. 이제 다른 JDK 도구인 jhat를 사용하여 이 덤프 파일을 읽고 구문 분석할 수 있습니다. 명령줄을 사용하세요:

jhat c:tempheapstatus.bin

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

분석이 완료된 후 jhat에 의해 인쇄된 출력에는 스냅샷이 해결되었다는 메시지가 표시되며 이는 로컬 서버의 7000 포트에서 볼 수 있습니다.

http://localhost:7000에 접속하시면 jmap 파싱 결과를 보실 수 있습니다.

localhost:7000 in browser:

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

하이퍼링크 "jmap Tool"을 클릭하여 세부 정보를 입력하세요. 아래 그림은 내 도구 클래스 인스턴스 @0x7166babd8의 멤버 변수, 즉 카운터 값을 의미합니다. 49개까지 누적되었습니다.

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

4. 명령줄이 마음에 들지 않으면 jmap 및 jhat 명령과 동일한 기능을 완료할 수 있는 Eclipse 플러그인인 MAT – 메모리 분석 도구를 사용할 수도 있습니다.

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

이 플러그인을 설치하면 Eclipse에 추가 보기가 표시됩니다.

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

jmap에서 생성된 힙 덤프 파일을 MAT 보기로 직접 드래그하면 결과는 다음과 같습니다. 자동으로 구문 분석되어 표시됩니다.

"주소로 개체 찾기" 버튼을 클릭하세요:

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

또한 이전에 localhost:7000에서 본 개체 인스턴스의 세부 정보를 볼 수도 있습니다:

이전에 얻은 것과 동일한 결과를 얻을 수 있습니다.

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법

위 내용은 JDK에 내장된 jmap 및 jhat을 사용하여 Java 프로세스의 실행 상태를 모니터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제