본문으로 건너뛰기

액티브 서비스 상세 조회

액티브 서비스 상세 조회는 현재 실행 중인 트랜잭션의 내부 상태를 실시간으로 진단하는 핵심 분석 도구입니다. 스택 트레이스, SQL 실행 정보, 외부 호출(HTTP) 정보를 한눈에 확인하여 성능 병목의 원인을 빠르게 파악하십시오.


1. 페이지 개요

1.1 기능 설명

기능설명
실시간 액티브 서비스 목록현재 실행 중인 트랜잭션을 3가지 모드(트랜잭션/SQL/HTTP 호출)로 분류하여 표시
스택 트레이스 조회선택한 스레드의 전체 스택 트레이스를 실시간으로 확인
스레드 상세 정보CPU 시간, 블록 횟수, 대기 시간, Lock 정보 등 스레드 내부 상태 확인
스레드 제어병목 스레드에 인터럽트 신호 전송 또는 강제 정지 (권한 필요)
SQL 뷰어 연동SQL 모드에서 실행 중인 SQL 쿼리와 바인드 변수를 상세 확인
자동 새로고침3초/5초/8초/10초 간격으로 데이터를 자동 갱신

1.2 접근 경로

접근 방법: 대시보드 > 액티브 서비스 바 차트 위젯 클릭
접근 방법

액티브 서비스 상세 조회는 별도 메뉴가 아닌, 대시보드의 액티브 서비스 바 차트 위젯을 클릭하여 팝업창으로 열립니다. 통합/시스템/관리자/운영 대시보드 모두에서 접근할 수 있습니다.

1.3 용어 안내

처음 사용하시는 분을 위해 주요 용어를 정리합니다.

용어설명
액티브 서비스현재 서버에서 실행 중인 트랜잭션(요청 처리)을 의미합니다
스택 트레이스프로그램이 현재 어떤 코드를 실행하고 있는지 보여주는 호출 경로입니다
스레드서버에서 하나의 요청을 처리하는 작업 단위입니다
경과 시간 (elapsed)요청이 시작된 후 현재까지 걸린 시간입니다. 길수록 느린 트랜잭션입니다
TPS(초당 트랜잭션 수)서버가 1초에 처리하는 트랜잭션 수입니다

2. 화면 구성

2.1 주요 영역

영역설명
왼쪽 패널액티브 서비스 데이터 그리드 (3탭 모드), 새로고침 컨트롤
오른쪽 패널스택 트레이스 상세, 스레드 정보, 제어 버튼

2.2 UI 구성도

2.3 전체 화면

액티브 서비스 상세 조회 전체 화면


3. 왼쪽 패널 — 액티브 서비스 목록

3.0 객체(서버) 선택기

왼쪽 패널 상단에 **객체(서버) 선택기(ServiceSelector)**가 표시됩니다.

기능설명
서버 목록모니터링 중인 서버 목록을 선택 메뉴로 표시
서버별 필터링특정 서버를 선택하면 해당 서버의 액티브 서비스만 표시
전체 보기"전체" 선택 시 모든 서버의 액티브 서비스를 통합 표시
서버가 여러 대일 때

서버를 직접 선택하면 특정 서버에서 발생한 병목만 집중적으로 확인할 수 있습니다.

3.1 데이터 그리드 컬럼

왼쪽 패널의 데이터 그리드는 현재 실행 중인 트랜잭션 목록을 표시합니다.

컬럼설명비고
객체명모니터링 대상 서버/인스턴스 이름별칭이 있으면 별칭 표시
클라이언트 IP요청을 보낸 클라이언트의 IP 주소없으면 - 표시
스레드 이름요청을 처리 중인 스레드의 이름-
스레드 CPU 시간스레드가 소비한 누적 CPU 시간 (ms)-
스레드 상태스레드의 현재 실행 상태RUNNABLE, WAITING 등
URL처리 중인 요청 경로모드 아이콘 함께 표시
경과 시간요청 시작 후 경과 시간 (ms)색상 코딩 적용
모드액티브 서비스 분류트랜잭션/SQL/HTTP 호출
상세 내용SQL 쿼리 텍스트 또는 호출 정보SQL/HTTP 호출 모드 시 표시

3.2 경과 시간 색상 코딩

경과 시간에 따라 색상이 자동으로 변경되어 병목 트랜잭션을 직관적으로 식별할 수 있습니다.

색상조건의미
🟢 초록색3초 이하정상 처리 중
🟠 주황색3초 ~ 8초주의 필요 — 느린 트랜잭션
🔴 빨간색8초 초과병목 의심 — 즉시 확인 권장
초보자 안내

빨간색으로 표시된 행을 먼저 클릭하여 스택 트레이스를 확인하십시오. 어떤 코드에서 오래 걸리는지 바로 파악할 수 있습니다.

3.3 행 선택

  • 선택 방법: 원하는 행을 클릭합니다.
  • 선택 결과: 오른쪽 패널에 해당 스레드의 상세 정보와 스택 트레이스가 표시됩니다.
  • 선택 해제: 다른 행을 클릭하면 이전 선택이 해제됩니다.
  • 한 번에 1개만 선택 가능합니다.

4. 오른쪽 패널 — 스택 트레이스 상세

4.1 패널 상태

오른쪽 패널은 상황에 따라 다른 화면을 표시합니다.

상태표시 화면설명
행 선택 전안내 메시지"확인할 액티브 서비스를 선택해주세요."
데이터 로딩 중로딩 표시스택 트레이스를 가져오는 중
정상 표시스레드 정보 + 스택 트레이스선택한 스레드의 전체 정보
조회 결과 없음안내 메시지"확인 가능한 스택 트레이스가 없습니다."
자동 새로고침 중안내 메시지"액티브 서비스를 {N}초 마다 새로고침을 하고 있습니다."
새로고침 정지안내 메시지"새로고침을 정지 하였습니다."
서버 다운경고 메시지"객체가 다운되었습니다."

4.2 스레드 정보

행을 선택하면 상단에 스레드의 상세 정보가 키-값 형태로 표시됩니다.

항목설명단위
객체명모니터링 대상 서버 이름-
수행 시간요청 시작 후 경과 시간ms/s/min 자동 변환
URL처리 중인 요청 경로-
스레드 ID스레드 고유 식별자-
스레드 이름스레드 표시 이름-
스레드 상태실행 상태 (RUNNABLE, WAITING, BLOCKED 등)-
스레드 CPU 시간스레드가 소비한 총 CPU 시간ms
스레드 사용자 시간스레드가 사용자 모드에서 소비한 CPU 시간ms
블록 개수스레드가 다른 스레드에 의해 차단된 횟수
블록 시간차단된 누적 시간ms
대기 개수스레드가 대기 상태에 진입한 횟수
대기 시간대기 상태 누적 시간ms
Lock 소유주 ID현재 Lock을 점유 중인 스레드 ID선택적 표시
Lock 이름Lock 객체 이름선택적 표시
Lock 소유주 이름Lock을 점유 중인 스레드 이름선택적 표시
고급 사용자 참고

블록 개수와 블록 시간이 높으면 데드락(Deadlock) 또는 Lock 경합이 의심됩니다. Lock 정보를 함께 확인하여 어떤 스레드가 Lock을 점유하고 있는지 파악하십시오.

4.3 스택 트레이스

스레드 정보 아래에 전체 스택 트레이스가 코드 형태로 표시됩니다.

  • 표시 형식: 메서드 호출 경로를 위에서 아래로 나열
  • 복사 기능: 스택 트레이스 영역 우측 상단의 복사 버튼을 클릭하면 전체 내용이 클립보드에 복사됩니다
  • 복사 완료 알림: "클립보드에 복사되었습니다." 메시지가 표시됩니다
개발자 활용

스택 트레이스를 복사하여 개발팀에 전달하면, 정확히 어떤 코드 라인에서 병목이 발생하는지 즉시 파악할 수 있습니다.


5. 3가지 모드: 트랜잭션 / SQL / HTTP 호출

왼쪽 패널 상단의 3개 탭으로 모드를 전환할 수 있습니다. 각 모드는 실행 중인 트랜잭션을 분류 기준에 따라 필터링합니다.

5.1 모드 비교

모드탭명표시 대상주요 확인 사항
트랜잭션트랜잭션일반 애플리케이션 코드 실행 중인 트랜잭션스택 트레이스, 실행 경로
SQLSQL데이터베이스 쿼리 실행 중인 트랜잭션SQL 쿼리 텍스트, 바인드 변수
HTTP 호출HTTP 호출외부 API/서비스 호출 중인 트랜잭션호출 대상 URL, 응답 대기 시간

5.2 SQL 모드 상세

SQL 모드에서는 추가로 다음 기능을 사용할 수 있습니다.

기능설명필요 권한
SQL 쿼리 표시상세 내용 컬럼에 실행 중인 SQL 쿼리 표시없음
SQL 뷰어"SQL 뷰어로 보기" 버튼으로 전체 쿼리 상세 확인funcKey 5 (SQL 조회 권한)
바인드 변수SQL에 전달된 파라미터 값 확인funcKey 5
DBA 협업

SQL 모드에서 경과 시간이 긴 쿼리를 찾아 SQL 뷰어로 전체 쿼리와 바인드 변수를 확인한 후, DBA에게 전달하여 실행 계획 분석을 요청하십시오.

5.3 HTTP 호출 모드 상세

외부 서비스를 호출하여 응답을 대기 중인 트랜잭션을 확인합니다. 상세 내용 컬럼에 호출 대상 정보가 표시됩니다.


5.4 스플릿 레이아웃 크기 조절

왼쪽 패널과 오른쪽 패널 사이의 분리선을 드래그하여 패널 너비를 자유롭게 조절할 수 있습니다.

조작방법결과
왼쪽 패널 확장분리선을 오른쪽으로 드래그서비스 목록 더 많이 표시
오른쪽 패널 확장분리선을 왼쪽으로 드래그스택 트레이스 더 넓게 표시
스택 트레이스가 길 때

오른쪽 패널을 넓혀서 긴 스택 트레이스를 더 편하게 읽을 수 있습니다.

5.5 포스트잇 탭 (세로 탭 메뉴)

팝업창 하단에 **세로 탭 메뉴(VerticalTabMenus)**가 표시됩니다. 포스트잇 형태의 탭으로 추가 정보를 확인할 수 있습니다.

설명
메모현재 선택한 서비스에 대한 운영 메모 작성 및 조회
기타 정보선택한 트랜잭션의 추가 메타데이터

5.6 쓰레드 종료 상태 분기

스레드 이름에 End가 포함되어 있는지에 따라 오른쪽 패널의 제어 UI가 달라집니다.

조건표시 UI설명
스레드 이름에 End 포함추적(Trace) UI완료된 트랜잭션의 전체 실행 경로를 추적하는 모드
스레드 이름에 End 미포함인터럽트/정지 버튼실행 중인 스레드를 제어하는 일반 모드

6. 스레드 제어 (인터럽트 / 정지)

오른쪽 패널에서 실행 중인 스레드에 인터럽트 신호 전송 또는 강제 정지를 할 수 있습니다.

6.1 제어 버튼

버튼동작설명필요 권한
인터럽트스레드에 인터럽트 신호 전송스레드가 안전하게 중단되도록 시도합니다. 스레드가 응답하지 않을 수 있습니다.funcKey 4
정지스레드 강제 정지스레드를 강제로 종료합니다. 데이터 정합성에 영향을 줄 수 있습니다.funcKey 4
주의사항
  • 인터럽트: 스레드에 중단 요청을 보내는 것이며, 스레드가 반드시 즉시 중단되는 것은 아닙니다.
  • 정지: 스레드를 강제 종료하므로 트랜잭션이 비정상 종료될 수 있습니다. 데이터 손실이나 정합성 문제가 발생할 수 있으므로 최후의 수단으로만 사용하십시오.

6.2 사용 절차

  1. 왼쪽 패널에서 제어할 스레드를 선택합니다.
  2. 오른쪽 패널의 스레드 이름 옆에 인터럽트/정지 버튼이 표시됩니다.
  3. 버튼을 클릭하면 확인 팝업창이 표시됩니다.
    • 인터럽트: "해당 스레드를 인터럽트 하시겠습니까?"
    • 정지: "해당 스레드를 정지 하시겠습니까?"
  4. "계속" 버튼을 클릭하면 제어 명령이 서버로 전송됩니다.

6.3 권한 없을 경우

funcKey 4 (ALLOW_ACTIVE_STACK) 권한이 없으면 인터럽트/정지 버튼이 비활성화 상태로 표시됩니다. 권한이 필요한 경우 시스템 관리자에게 역할 설정 변경을 요청하십시오.


7. 데이터 갱신

7.1 자동 새로고침

왼쪽 패널 하단의 새로고침 컨트롤로 자동 갱신을 설정합니다.

구성 요소설명
간격 선택3초 / 5초 / 8초 / 10초 중 선택
기본값 안내RefreshSelect 폼의 기본값은 3초이지만, ActiveDialog(팝업창) 초기화 시 기본값은 10초가 적용됩니다. 실제 사용 시 10초로 시작됩니다.
재생/일시정지 버튼 (▶/⏸)자동 새로고침 시작/중지
수동 새로고침 버튼 (🔄)즉시 데이터 갱신

7.2 갱신 방식

방식설명
자동 갱신선택한 간격마다 서버에서 최신 데이터를 자동으로 가져옵니다
수동 갱신새로고침 버튼(🔄)을 클릭하면 즉시 데이터를 갱신합니다
실시간 모니터링

긴급 상황에서는 자동 새로고침 간격을 3초로 설정하여 실시간에 가까운 모니터링이 가능합니다. 일상적인 모니터링에서는 10초를 권장합니다.


8. 라이선스 및 권한

8.1 기능별 요구 사항

기능라이선스 필요권한 (funcKey)미보유 시 동작
액티브 서비스 목록 조회불필요불필요항상 사용 가능
스택 트레이스 상세 조회필요불필요오른쪽 패널에 라이선스 안내 표시
SQL 뷰어불필요funcKey 5버튼 비활성화
인터럽트 / 정지불필요funcKey 4버튼 비활성화

8.2 라이선스 미보유 시

스택 트레이스 라이선스가 없으면 오른쪽 패널에 **라이선스 안내 오버레이(LicenseNotice)**가 표시되며 상세 정보를 볼 수 없습니다. 오버레이는 팝업창 전면에 표시되어 기능 사용을 차단합니다. 라이선스 활성화는 관리자에게 문의하십시오.


8.3 주요 인터랙션 요약

인터랙션방법결과
서버 필터링객체 선택기에서 특정 서버 선택해당 서버의 액티브 서비스만 표시
패널 크기 조절좌우 패널 사이 분리선 드래그패널 너비 자유 조절
스레드 종료 감지스레드 이름에 End 포함 시추적(Trace) UI로 자동 전환
라이선스 차단라이선스 미보유 상태LicenseNotice 오버레이 표시

9. 고급 활용: 성능 병목 분석

9.1 시나리오 1: 느린 트랜잭션 원인 분석

아래 절차를 따라 응답이 느린 트랜잭션의 원인을 분석하십시오.

  1. 대시보드에서 액티브 서비스 바 차트의 빨간색(8초 초과) 바를 클릭합니다.
  2. 왼쪽 패널에서 경과 시간이 가장 긴 행(빨간색)을 선택합니다.
  3. 오른쪽 패널에서 스레드 상태를 확인합니다.
    • RUNNABLE: 코드가 실행 중 — 스택 트레이스에서 병목 메서드를 확인하십시오.
    • WAITING / BLOCKED: 다른 스레드를 대기 중 — Lock 정보를 확인하십시오.
  4. 스택 트레이스를 복사하여 개발팀에 전달합니다.

9.2 시나리오 2: SQL 성능 최적화

  1. SQL 탭을 클릭하여 SQL 모드로 전환합니다.
  2. 경과 시간으로 정렬하여 가장 오래 실행 중인 SQL을 찾습니다.
  3. 해당 행을 선택한 후 **"SQL 뷰어로 보기"**를 클릭합니다.
  4. 전체 쿼리와 바인드 변수를 확인하여 DBA에게 전달합니다.

9.3 시나리오 3: 외부 호출 병목

  1. HTTP 호출 탭을 클릭하여 외부 호출 모드로 전환합니다.
  2. 경과 시간이 긴 행을 선택합니다.
  3. 상세 내용에서 호출 대상 URL/서버를 확인합니다.
  4. 네트워크 지연 또는 외부 서비스 장애 여부를 확인합니다.

9.4 시나리오 4: 데드락 의심 상황

  1. 스레드 정보에서 블록 개수블록 시간이 높은 스레드를 확인합니다.
  2. Lock 소유주 ID를 확인하여 어떤 스레드가 Lock을 점유하고 있는지 파악합니다.
  3. Lock 소유주 스레드도 함께 분석하여 순환 대기 여부를 확인합니다.
  4. 필요시 인터럽트로 교착 상태를 해소합니다.

10. 문제 해결

10.1 자주 발생하는 문제

증상원인해결 방법
"확인할 액티브 서비스를 선택해주세요." 표시행을 선택하지 않음왼쪽 패널에서 행을 클릭하십시오
데이터가 비어 있음현재 실행 중인 트랜잭션이 없음자동 새로고침을 활성화하고 부하 발생 시 다시 확인하십시오
스택 트레이스가 표시되지 않음라이선스 미보유라이선스 페이지에서 활성화 상태를 확인하십시오
SQL 뷰어 버튼이 비활성화됨SQL 조회 권한(funcKey 5) 미보유역할 설정에서 SQL 조회 권한 확인 후 관리자에게 요청하십시오
인터럽트/정지 버튼이 비활성화됨스레드 제어 권한(funcKey 4) 미보유역할 설정에서 스레드 제어 권한 확인 후 관리자에게 요청하십시오
"객체가 다운되었습니다." 표시모니터링 대상 서버가 중단됨서버 상태를 확인하고 복구 후 다시 시도하십시오
바 차트 클릭 시 팝업이 열리지 않음클릭한 객체가 다운 상태실행 중인 다른 객체의 바를 클릭하십시오

11. 관련 문서