아틴
Atin
아틴
전체 방문자
오늘
어제
  • 분류 전체보기 (460)
    • Devlopment (246)
      • 정리 글 (20)
      • MicroServices (0)
      • Reactive, Concurrenc.. (12)
      • Java (44)
      • Spring (20)
      • C,C++,Ruby,Python (52)
      • Mobile (39)
      • Web (35)
      • Tip & Info (14)
      • Unit Test (7)
    • Infra (44)
      • OS (21)
      • RDBMS (13)
      • NoSQL&Cache (5)
      • AWS (4)
    • Computer Science (11)
    • Etc (156)

블로그 메뉴

  • Home
  • Guestbook

공지사항

인기 글

태그

  • 여행
  • TRPG
  • 전라도
  • Ruby on Rails
  • Linux
  • 안드로이드
  • mysql
  • javascript
  • 해킨토시
  • 아이폰
  • Android
  • Dungeons & Dragons
  • 자바
  • 던젼 앤 드래곤즈
  • CSS
  • C
  • Java
  • Python
  • 정읍
  • jsp

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
아틴

Atin

카테고리 없음

Tomcat - currentThreadBusy

2020. 2. 7. 13:07
반응형

Tomcat에서 currentThreadBusy 값이 있다.
이 값은 thread의 수와는 별도의 수치이다.
Http Thread pool 의 ThreadPoolExecutor.getActiveCount()의 값으로서,
디폴트 설정인 경우에는 java.util.concurrent.ThreadPoolExecutor 를 사용한다

ActiveCount()의 개념은 현재 작업을 할당받고 일을 하고 있는 수이다.

Thread에는 다음과 같은 상태가 있는데 이 중에서 NEW가 아닌 상태들을 ActiveCount에서 카운팅하고 있다.

  • NEW: 스레드가 생성되었지만 아직 실행되지 않은 상태
  • RUNNABLE: 현재 CPU를 점유하고 작업을 수행 중인 상태. 운영체제의 자원 분배로 인해 WAITING 상태가 될 수도 있음
  • BLOCKED: Monitor를 획득하기 위해 다른 스레드가 락을 해제하기를 기다리는 상태
  • WAITING: wait() 메서드, join() 메서드, park() 메서드 등를 이용해 대기하고 있는 상태
  • TIMED_WAITING: sleep() 메서드, wait() 메서드, join() 메서드, park() 메서드 등을 이용해 대기하고 있는 상태. WAITING 상태와의 차이점은 메서드의 인수로 최대 대기 시간을 명시할 수 있어 외부적인 변화뿐만 아니라 시간에 의해서도 WAITING 상태가 해제될 수 있음.

그래서 서비스 중인 톰캣의 currentThreadBusy의 수치를 보면, 계속 처리하고 있는 스레드들이 있을 것이므로 어느정도 수치가 유지되는 것은 당연한 일이고 문제가 없다. 그러나 이 수치가 튀는 시점에는 GC, Network, DB등의 이유로 처리속도가 떨어지는 일이 발생했다고 추정할 수 있다.

 

Reference

  • https://woooongs.tistory.com/41
  • https://parkcheolu.tistory.com/18
  • https://d2.naver.com/helloworld/10963
반응형
저작자표시 비영리 변경금지 (새창열림)
    아틴
    아틴

    티스토리툴바