자바 진단 도구 Arthas watch 명령

1983 단어
Arthas 는 개 원 된 자바 진단 도구 입 니 다. 상세 한 내용 은 다음 과 같 습 니 다.https://alibaba.github.io/arthas/index.html. 오늘 처음으로 프로젝트 에서 문 제 를 조사 하여 사용 하 였 는데, 그 기능 이 확실히 강하 다 는 것 을 발견 하 였 다. 여기에 watch 명령 의 사용 을 기록 하 였 다.
설치 하 다.
JDK 를 설치 하고 jar 패키지 로 실행 하면 됩 니 다.
wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar

watch 진단 방법 으로 호출
Arthas 의 watch 방법 을 통 해 로 그 를 인쇄 하지 않 은 상태 에서 방법의 입력 과 반환 값 을 볼 수 있 습 니 다. 이 점 은 debug 를 인쇄 하지 않 거나 재 부팅 하지 않 으 면 현장 을 파괴 할 수 있 는 상황 에서 매우 유용 합 니 다.
arthas - boot. jar 를 실행 한 후 현재 시스템 의 모든 자바 프로 세 스 를 표시 하고 진단 할 프로 세 스 의 번 호 를 입력 하면 arthas 명령 모드 에 들 어 갑 니 다.홈 페이지 에 있 는 자바 - jar arthas - demo. jar 를 예 로 들 면 정보 안전 을 위해 회사 에 있 는 debug 정 보 를 잘 드 러 내지 않 습 니 다.
4. 567917. 먼저 sc 명령 을 이용 하여 해당 하 는 유형 을 조회 할 수 있 습 니 다
$ sc *Math*
demo.MathGame
io.netty.util.internal.MathUtil
java.lang.Math
Affect(row-cnt:3) cost in 17 ms.

4. 567917. 그리고 sm 명령 으로 대응 하 는 방법 을 조회 합 니 다
$ sm demo.MathGame*
demo.MathGame ()V
demo.MathGame primeFactors(I)Ljava/util/List;
demo.MathGame main([Ljava/lang/String;)V
demo.MathGame run()V
demo.MathGame print(ILjava/util/List;)V
Affect(row-cnt:5) cost in 9 ms.

4. 567917. watch 명령 을 이용 하여 지정 한 방법 을 감청 합 니 다. - x 매개 변 수 는 인쇄 인삼 과 반환 값 의 깊이 를 지정 할 수 있 습 니 다
$ watch demo.MathGame primeFactors "{params,returnObj}" -x 2
Press Q or Ctrl+C to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 49 ms.
ts=2019-07-03 14:29:41; [cost=1.778091ms] result=@ArrayList[
    @Object[][
        @Integer[-136776],
    ],
    null,
]
ts=2019-07-03 14:29:42; [cost=0.105508ms] result=@ArrayList[
    @Object[][
        @Integer[47524],
    ],
    @ArrayList[
        @Integer[2],
        @Integer[2],
        @Integer[109],
        @Integer[109],
    ],
]

나 는 바로 이 도 구 를 이용 하여 시스템 에서 매우 이상 한 문 제 를 진단 해 냈 다.최종 원인 은 PHP 프로그램 이 자바 인 터 페 이 스 를 호출 하 는 순서 에 약간의 차이 가 있 기 때문이다.

좋은 웹페이지 즐겨찾기