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: 선택된 기록 재실행.