액티브 서비스 분석
실행 중인 트랜잭션을 액티브 서비스라고 합니다. 다음은 액티브 서비스에 대한 분석 예제입니다.
오브젝트 전체 현황
왼쪽에서 오른쪽으로 지나가는 검은색 막대는 트랜잭션을 의미합니다. 모든 오브젝트에서 모니터링 중인 액티브 트랜잭션의 상태를 세가지 속도(파란색/노란색/빨간색)로 구분하여 막대 상단에 각각의 개수를 보여줍니다. 합산된 값은 검은색으로 오른쪽에 조금 큰 숫자로 표기합니다.
트랜잭션의 수행시간이 짧은 순서로 파란색/노란색/빨간색으로 표현하며, 막대가 50개 이상 실행 중인 경우 비율로 표시합니다.
- 현재 액티브 서비스 카운트: 파란색(0초-3초), 노란색(3초-8초), 빨간색(8초-)
- 현재 액티브 서비스 전체 수
- 현재 TPS
- 액티브 서비스 막대: 클릭 시 액티브 서비스 조회
오브젝트 조회
액티브 서비스의 상태를 속도(파란색, 노란색, 빨간색)로 분류하고 서비스명과 막대로 보여주어 개별적인 모니터링을 할 수 있습니다.
액티브 서비스의 개수가 증가하면 왼쪽에서 오른쪽으로 막대가 쌓입니다. 막대 오른쪽 위에 적힌 숫자가 실행 중인 스레드의 개수입니다.
- 오브젝트 이름: 클릭하면 오브젝트 필터링, 다시 클릭하면 필터링이 해제됩니다.
- 액티브 서비스 막대: 파란색(0초-3초), 노 란색(3초-8초), 빨간색(8초-), 클릭 시 액티브 서비스 조회
액티브 서비스 보기
액티브 서비스 막대를 클릭하면 실행 중인 트랜잭션에 대한 스레드 정보와 스택 트레이스(StackTrace)를 확인할 수 있습니다.
액티브 서비스란? WAS에 스레드에서 실행 중인 스택 트레이스를 캡처한 내용입니다.
액티브 서비스 목록은 트랜잭션의 응답시간에 따라 파란색/노란색/빨간색으로 구분되어 표현됩니다.
- 실행 중인 트랜잭션에 대한 스레드 정보
컬럼명 | 설명 |
---|---|
오브젝트 | 트랜잭션이 발생한 서버의 오브젝트 이름 |
블록 개수 | 스레드가 BLOCKED 상태가 된 총 횟수 |
블록 시간 | 스레드가 BLOCKED 상태가 된 후 경과 시간(밀리초), 스레드 경합 모니터링이 비활성화된 경우 -1 반환 |
Lock 이름 | 스레드의 입력이 차단되거나 Object.wait 메소드를 통해 통지(Notify)를 기다리는 모니터 잠금을 표시한 문자열 |
Lock 소유주 ID | 스레드가 차단된 개체의 모니터(Monitor) 잠금을 유지하는 스레드 ID |
수행 시간 | 서비스 실행 시간 |
URL | 서비스 호출 이름 |
트랜잭션 ID | FlowKat 서비스 식별자 ID |
* 스레드 상태 | 스레드 상태 이름(표 아래 스레드 상태 상세 참고) |
스레드 CPU 시간 | 스레드의 CPU 시간 합계(나노초)를 밀리초로 계산하여 표시, CPU 시간 측정을 비활성화한 경우 -1 반환 |
스레드 이름 | 스레드 고유 이름 |
스레드 ID | 스레드에 할당된 고유 ID |
스레드 사용자 시간 | 스레드가 사용자 모드에서 실행한 CPU 시간(나노초)을 밀리초로 계산하여 표시 |
대기 건수 | 스레드가 WAITING 또는 TIMED_WAITING 상태가 된 총 횟수 |
대기 시간 | 스레드가 WAITING 상태를 지속한 경과 시간(밀리초), 스레드 경합 모니터링이 비활성화된 경우 -1 반환 |
* 액티브 상태 | 액티브 상태 요약 (표 아래 액티브 상태 상세 참고) |
액티브 상세 내용 | 액티브 상세 내용 |
스레드 상태 상세
- 스레드 상태: 스레드의 상태는
java.lang.Thread
클래스 내부에State
라는 이름의 열거형으로 선언된 항목들입니다.NEW
: 스레드가 생성되었지만 아직 실행되지 않은 상태입니다.RUNNABLE
: 현재 CPU를 점유하고 작업을 수행 중인 상태입니다. 운영체제의 자원 분배로WAITING
상태가 될 수도 있습니다.WAITING
:wait()
,join()
,park()
메소드 등를 이용해 대기하고 있는 상태입니다.TIMED_WAITING
:sleep()
,wait()
,join()
,park()
메소드 등을 이용해 대기하고 있는 상태입니다. 주어진 시간 동안 대기하는 상태로 일반적인WAITING
상태와는 성격이 다릅니다. 외부적인 변화 뿐만 아니라 시간에 의해서도 대기 상태가 해제될 수 있습니다.BLOCKED
: 사용하려는 개체의 락(Lock)이 풀릴 때까지 대기하고 있는 상태입니다.TERMINATED
: 실행을 마친 상태입니다.
액티브 상태 상세
- 액티브 상태:
SQL
,SUBCALL
상태는 현재 외부 호출이 실행 중일 때 표시됩니다. 외부 호출이 없는 경우 단순 스레드 실행 중인 스택 정보를 가져옵니다.
n
**SQL**
: SQL 실행 중- 실행 중인
**SQL**
쿼리문을 확인 **SUBCALL**
: http 외부 호출 중**실행 중인 스택 트레이스**
에 외부 호출이 없는 경우**액티브 서비스 종료**
상태
액티브 서비스 종료는 액티브 서비스가 없는 상태의 마지막 트랜잭션 ID를 기준으로 프로파일 스텝을 로드합니다.
액티브 서비스 새로고침 기능
- 새로고침
- 자동 새로고침: 5초에 1회 자동 새로고침
파란색(0초-3초), 노란색(3초-8초), 빨간색(8초-)
액티브 서비스 컬럼
컬럼명 | 설명 |
---|---|
오브젝트 | 인스턴스 이름 |
URL | 서비스 URL |
수행시간 | 서비스가 소요되고 있는 시간(ms) |
클라이언트 IP | 서비스 요청 중인 IP |
스레드 이름 | 트랜잭션이 실행 중인 스레드 이름 |
시계열 차트 과거 데이터 조회
시계열 차트란? 트랜잭션의 데이터를 시간 경과에 따른 그래프로 표현한 것으로 트랜잭션의 추이를 파악하는 데 유용합니다.
시계열 차트 예시
- 기간 검색 버튼을 눌러 시간 검색창으로 진입합니다.
기간 검색 버튼 클릭
n
날짜 검색 조건 설정
검색 조건의 기준은 현재 시각입니다.
검색 시작 일자와 시각을 설정합니다.
검색 종료 일자와 시각을 설정합니다.
날짜 검색 조건 상세
시간 | 설명 |
---|