system-top-threads
시스템에서 부하가 높은 스레드를 CPU 사용량 기준으로 내림차순 정렬하여 조회합니다. 클러스터 관리자 권한이 필요합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 드라이버 쿼리 |
| 필요 권한 | 클러스터 관리자 권한 |
| 라이선스 사용량 | 집계 안 함 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 미지원 |
문법
system-top-threads
옵션
옵션 없음
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
| tid | 64비트 정수 | 스레드 번호 |
| name | 문자열 | 스레드 이름 |
| state | 문자열 | 스레드 상태. NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED 값 중 하나를 반환합니다. |
| priority | 32비트 정수 | 스레드 우선순위. 1부터 10 사이의 값이며, 기본값은 5입니다. |
| usage | 64비트 정수 | 1초 간격으로 측정한 CPU 사용 시간 (단위: 나노초) |
| stacktrace | 문자열 | 스레드 스택 트레이스 (jstack과 유사한 형식) |
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 95050 | 읽기 권한이 없습니다. 클러스터 관리자 권한이 필요합니다. | 클러스터 관리자 권한이 없는 경우 |
| 95051 | 스레드 CPU 사용량 측정이 지원되지 않거나 비활성화되어 있습니다. | JVM이 스레드 CPU 사용량 측정을 지원하지 않거나 비활성화된 경우 |
런타임 오류
해당 사항 없음
설명
system-top-threads 명령어는 JVM에서 CPU를 많이 사용하는 스레드를 조회합니다. 1초 간격으로 각 스레드의 CPU 사용 시간을 두 번 측정하여, 그 차이를 usage 필드에 나노초 단위로 반환합니다. CPU 사용 시간이 0 이하인 스레드(비활성 또는 대기 중인 스레드)는 결과에서 제외됩니다.
결과는 CPU 사용량이 높은 순서대로 정렬됩니다. 성능 저하 시 어떤 스레드가 CPU를 점유하고 있는지 진단하는 용도로 사용합니다.
이 명령어를 실행하려면 클러스터 관리자 권한이 필요하며, JVM이 스레드 CPU 사용량 측정을 지원해야 합니다.
사용 예
-
CPU 사용량이 높은 스레드 조회
system-top-threads -
CPU 사용량 상위 10개 스레드 조회
system-top-threads | limit 10
호환성
system-top-threads 명령어는 소나 4.0 이전 버전부터 제공되었습니다.