brunch

You can make anything
by writing

C.S.Lewis

by 이동인 Apr 02. 2020

Thread 정보 확인하기

애플리케이션 모니터링

CPU 시간을 많이 사용하는 스레드가 애플리케이션의 성능에 영향을 준다면 해당 스레드를 튜닝해야 합니다. 이렇게 스레드를 기준으로 성능 개선을 해야 하는 경우가 있습니다. 이런 경우 스레드의 정보를 확인할 수 있도록 (Java) 애플리케이션 모니터링 (Java) 서비스들은 스레드 목록 정보를 제공하고 있습니다.


스레드란?

스레드는 프로세스 내에서 실행 단위입니다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행합니다. 그리고 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 합니다. 각 스레드는 자신의 스택과 레지스터를 가지고 있습니다. 


스레드와 프로세스의 차이

많은 분들이 스레드와 프로세스의 구분을 혼란스러워 합니다. 쉽게 설명한다면 프로세스는 운영체제로부터 자원을 할당받는 단위입니다. 그리고 스레드는 프로세스로부터 자원을 할당받는 단위입니다. 운영체제는 다양한 프로세스가 실행되어 동작하며 프로세스는 다양한 스레드들이 실행되어 동작합니다. 


스레드 정보 확인

애플리케이션 모니터링 서비스를 통해 알수 있는 스레드 정보들은 다음과 같습니다. 

스레드 아이디: long 타입의 유일 값. 

스레드 이름: 사용자 설장이 가능한 값.  

스레드 CPU 시간

스레드 점유 시간의 변화 값

스레드 상태

스레드 내부 스택 트레이스


스레드 내부 정보 확인

애플리케이션 모니터링 서비스를 통해 스레드 내부의 스택 트레이스 정보를 찾아 볼 수도 있습니다. 


마무리

막상 스레드를 확인하려고 하면 해야 할 일들도 많고 알수 있는 정보들도 한정적인 경우가 많습니다. 애플리케이션 모니터링 도구들은 대부분 스레드에 대한 정보를 체계적이고 종합적으로 수집 제공하고 있습니다. 스레드 정보를 확인해야 하는 경우가 있다면 와탭 애플리케이션 모니터링 서비스에서 제공하는 15일간 무료 사용 기간을 통해 확인하는 것도 좋은 방법이 될 수 있습니다. 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari