Arthas 활용 가이드

1. 실행 환경


운영체제: centos7.9
Java 버전: jdk1.8.201
Arthas 버전: 3.6.9

2. Arthas 설치 및 프로세스 연결


curl -O https://alibaba.github.io/arthas/arthas-boot.jar
curl -O https://alibaba.github.io/arthas/arthas-demo.jar

java -jar arthas-demo.jar
java -jar arthas-boot.jar --target-ip 0.0.0.0 --telnet-port 9998

# 정리하기
rm -rf ~/.arthas/
rm -rf ~/logs/arthas

3. 기본 명령어

  • help: 명령어 도움말 보기.
  • cat: 파일 내용 출력 (Linux의 cat 명령어와 유사).
  • grep: 텍스트 검색 (파이프라인과 함께 사용 가능).
  • pwd: 현재 작업 디렉토리 출력.
  • cls: 화면 지우기.
  • session: 현재 세션 정보 확인.
  • reset: 강화된 클래스 초기화.
  • history: 명령어 기록 보기.
  • quit: 현재 클라이언트 종료.
  • stop: Arthas 서버 종료.
  • keymap: 단축키 목록 및 사용자 정의.

4. 단축키

명령어 입력 시 Tab 키를 통해 자동 완성 제공.

단축키설명
Ctrl + A커서를 줄의 시작으로 이동.
Ctrl + E커서를 줄의 끝으로 이동.
Ctrl + F한 단어 앞으로 이동.
Ctrl + B한 단어 뒤로 이동.
방향키문자 단위로 커서 이동.

5. JVM 관련 명령어

dashboard

JVM 상태 대시보드 표시.

  • ID: 스레드 ID.
  • NAME: 스레드 이름.
  • GROUP: 스레드 그룹.
  • PRIORITY: 스레드 우선순위.
  • STATE: 스레드 상태.
  • CPU%: CPU 사용량.

thread

현재 JVM의 스레드 스택 정보 확인.

  • [n:] : 가장 바쁜 n개의 스레드 표시.
  • [b]: 차단 중인 스레드 찾기.
  • [i <value>]: 샘플링 간격 설정.

jvm

JVM 정보 조회.

  • COUNT: 활성 스레드 수.
  • DAEMON-COUNT: 데몬 스레드 수.
  • PEAK-COUNT: 최대 스레드 수.

6. 클래스/클래스로더 관련 명령어

sc

로드된 클래스 정보 검색.

  • *class-pattern*: 클래스 이름 패턴.
  • *method-pattern*: 메서드 이름 패턴.
  • -d: 상세 정보 표시.

sm

로드된 클래스의 메서드 정보 검색.

  • *class-pattern*: 클래스 이름 패턴.
  • *method-pattern*: 메서드 이름 패턴.

jad

로드된 클래스 소스 코드 복원.

  • jad java.lang.String: String 클래스 복원.

dump

로드된 클래스 바이트코드 저장.

  • dump demo.*: demo 패키지 하위 모든 클래스 저장.

7. 기타 핵심 명령어

monitor

특정 클래스의 메서드 실행 모니터링.

  • -c: 통계 주기 설정.

watch

메서드 호출 관찰.

  • {params, returnObj}: 매개변수 및 반환값 관찰.
  • -b: 메서드 호출 전에 관찰.
  • -s: 메서드 성공 후 관찰.

trace

메서드 내부 호출 경로 추적.

  • #cost: 실행 시간 필터링.

stack

메서드 호출 경로 출력.

  • 조건 표현식을 통해 특정 호출만 필터링 가능.

tt

시간 터널 기능 제공.

  • -t: 특정 시간 범위 내 호출 기록.
  • -l: 기록 목록 표시.
  • -p: 선택된 기록 재실행.

태그: arthas JVM java-debugging

6월 17일 22:23에 게시됨