>  기사  >  운영 및 유지보수  >  UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법

UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법

PHPz
PHPz앞으로
2023-05-14 15:31:121523검색

소개

올인원의 지능형 서비스 기술 스택인 UAVStack은 매우 포괄적인 모니터링 데이터 샘플링 기능을 제공하고 데이터 모니터링 및 조기 경고를 지원합니다. 최근에는 기존 데이터 수집 및 표시 기능을 통합하고 JVM 분석 기능을 추가했으며 더욱 사용하기 쉬운 JVM 모니터링 및 분석 도구를 출시했습니다.

JDK에 익숙한 개발자는 JDK 자체가 jinfo, jmap, jstack 등을 포함한 일련의 JVM 분석 도구를 제공한다는 것을 알고 있습니다. 사용자는 명령줄을 통해 JVM 메모리 스택 정보, 메모리 객체 할당, 기본 JVM 시작 매개변수 정보를 쉽게 얻을 수 있습니다. 그러나 이러한 도구는 명령줄 환경에서 실행되어야 하며 프로덕션 환경에서는 배스천 호스트를 통해 전달되어야 합니다.

오픈 소스 커뮤니티의 일부 좋은 JVM 분석 도구는 기본 JVM 정보 획득, 스택 추적, 메모리 정보 획득과 ​​같은 기능도 제공할 수 있지만 명령줄 CLI의 지원도 필요합니다.

UAVStack에서 출시된 JVM 모니터링 및 분석 도구는 수집된 모니터링 데이터를 그래픽으로 표시하는 페이지 기반 표시 방법을 제공하며 JVM 기본 매개변수 획득, 메모리 덤프, 스레드 분석, 메모리 할당 샘플링 및 핫스팟과 같은 기능도 제공합니다. 방법 분석.

1. 아키텍처

JVM 모니터링 및 분석 도구는 UAVStack의 기존 아키텍처를 기반으로 하며 프런트엔드, 백엔드 및 미들웨어 강화 프레임워크(MOF)로 구분됩니다. 그 중:

  • 프런트 엔드는 데이터를 표시하고 사용자 실행 명령을 백그라운드로 보내는 역할을 담당합니다.

  • 백그라운드는 명령 실행, 사용자 쿼리에 응답 및 수집된 데이터 처리를 담당합니다.

    MOF(미들웨어 강화 프레임워크)는 백그라운드에서 발행된 명령을 수신하고, 명령을 실행하고 데이터를 반환하거나 데이터를 파일에 쓴 다음 UAV에서 제공하는 파일 수집 기능을 통해 데이터를 업로드하는 역할을 담당합니다.
  • 전체 아키텍처 프로세스는 아래 그림과 같습니다.

2. 핵심 기술 UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법

2.1 JMX

JMX는 메모리 힙 크기, GC 상태, 등입니다. JVM 데이터 모니터링의 기초입니다.

2.2 MOF(Middleware Enhancement Framework)

분석 도구 전체 링크의 기반으로 MOF는 사용자 애플리케이션에 부착되며 주로 다음과 같은 기본 지원을 제공합니다.

기본 데이터 수집: MOF가 애플리케이션에 내장되어 있습니다. , JMX는 관련 JVM의 기본 정보 데이터를 정기적으로 획득하고 보고하여 표시 및 조기 경고를 위한 데이터 기반을 제공합니다.
  • 요청 캡처, 명령 실행: JVM 모니터링 및 분석 도구의 대부분 기능은 애플리케이션이 있는 서버에 명령을 실행해야 합니다. MOF는 명령을 발행하기 위한 요청을 가로채서 실행하고 해당 결과를 반환하는 역할을 담당합니다.
  • 2.3 Java Attach API
Java Attach API는 Sun에서 제공하는 비표준 API 세트로, 사용자를 실행 중인 가상 머신 프로세스에 연결하고 에이전트 마운트와 같은 작업을 수행할 수 있습니다.

JVM 모니터링 및 분석 도구에서 Java Attach API는 주로 가상 머신 프로세스에 연결하고 다음 작업을 수행하는 데 사용됩니다.

JMX 연결 가져오기: 외부에서 JVMConnection을 가져오고 MXBean을 가져오고, 실행 중인 데이터를 가져옵니다. (CPU 샘플링 분석)
  • VirtualMachine 객체 가져오기: 인터페이스를 호출하여 힙 메모리 분포 정보를 가져옵니다. (메모리 샘플링 분석)
  • 3. 기능 표시
3.1 기본 모니터링

애플리케이션 인스턴스를 선택한 후 기본 모니터링 페이지로 진입할 수 있습니다.

이 페이지에는 주로 CPU 사용량, 스레드 상태, 메모리 사용량 및 GC 상태가 표시됩니다. 사용자는 필요에 따라 시간 범위를 조정하고 다양한 기간의 모니터링 데이터를 볼 수 있습니다.

3.2 JVM 요약UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법

JVM 요약 페이지에는 기본 정보, JVM 매개변수 및 시스템 속성을 포함한 현재 가상 머신의 기본 매개변수 정보가 표시됩니다. 그 중:

기본 정보에는 pid, 호스트 정보, 시작 매개변수 및 JVM 시작 시간과 같은 가장 기본적이고 중요한 정보가 포함됩니다.
  • JVM 매개변수에는 모든 JVM 시작 매개변수가 포함되며 사용자는 지정된 힙을 볼 수 있습니다. 크기, 가비지 수집기 정보 등
  • 시스템 속성에는 System.Properties 및 Javaagent 구성 속성에 작성된 모든 구성 정보가 포함됩니다.

3.3 스레드 분석UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법

스레드 분석은 jstack을 실행하여 기본적인 스레드 정보를 얻고, 출력된 결과를 분석하여 스레드 상태 수, 교착 상태 여부 등의 정보를 얻습니다.

3.4 메모리 덤프UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법

메모리 덤프는 jmap을 실행하여 지정된 JVM의 스택 덤프 파일을 가져옵니다.

사용자는 배스천 머신에 로그인하지 않고도 프런트 엔드에서 한 번의 클릭으로 쉽게 덤프를 생성할 수 있습니다. 최근 덤프 메모리 작업 기록을 보려면 "새로 고침"을 클릭하세요.

3.5 CPU 분석UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법

CPU 분석은 스레드 스택 샘플링 분석을 기반으로 하며 주로 스레드 실행 시간과 메서드 핫스팟 샘플링이라는 두 가지 기능을 제공합니다.

  • 스레드 실행 시간은 샘플링 기간 동안 스레드의 활동 시간을 나타냅니다. 쿼리 결과는 전체 스레드 활동 시간에 따라 정렬되며, 스레드 이름 및 스레드 실행 시간 정보도 함께 제공되므로 사용자가 애플리케이션의 실행 상태를 판단할 수 있습니다.

UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법

  • 메소드 핫스팟 샘플링은 모든 메소드의 실행 시간을 계산하고 해당 메소드의 클래스 이름 및 메소드 이름 정보를 제공합니다. 이 중 메소드의 자체 실행 시간에는 다른 메소드를 호출하는 메소드의 실행 시간은 포함되지 않습니다. 쿼리 결과는 메소드의 자체 실행 시간에 따라 내림차순으로 정렬됩니다. 사용자는 현재 애플리케이션 내에서 더 긴 실행 메소드를 확인하여 애플리케이션의 비정상 여부와 최적화가 필요한지 여부를 확인할 수 있습니다.

UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법

3.6 메모리 분석

메모리 분석은 스레드 및 힙에 대한 통계적 샘플링 분석을 기반으로 하며, 주로 스레드별 메모리 할당 및 힙 할당 세부 정보라는 두 가지 기능을 제공합니다.

  • 스레드 메모리 할당은 각 스레드의 메모리 할당 크기, 스레드 이름 등의 정보를 메모리 할당 크기에 따라 내림차순으로 정렬하여 제공합니다. 사용자는 현재 많은 양의 메모리를 점유하고 있는 스레드를 볼 수 있습니다.

UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법

  • 힙 내 할당은 힙에 있는 각 클래스의 할당된 인스턴스 수와 점유된 힙 메모리를 힙 메모리 크기에 따라 내림차순으로 정렬하여 제공합니다. 사용자는 이 기능을 간단한 덤프 및 분석 도구로 사용하여 메모리 할당을 신속하게 분석하고 메모리 할당 문제를 발견할 수 있습니다.

UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법

위 내용은 UAVStack에서 JVM 모니터링 및 분석 도구를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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