개발
스레드 풀(Thread Pool)
잔망준형
2025. 6. 1. 18:22
스레드 풀이란?
미리 생성되어 있는 스레드들의 집합이다.
스레드 풀이 필요한 이유?
요청마다 스레드를 새로 생성하여 작업을 처리할 수도 있다.
하지만 그럴 때 발생하는 문제가 있는데
먼저, 스레드 생성 자체에 비용이 든다.
그리고, 스레드 생성에는 제한이 없기 때문에 많은 요청에 스레드가 계속 생성되다가 리소스 부족 문제로 서버가 죽을 수 있다.
그래서 이를 해결하기 위해 차라리 미리 최댓값이 정해진 생성되어 있는 스레드 풀을 이용하여, 요청마다 새로 생성할 필요 없이 스레드 풀에서 놀고 있는 스레드로 작업을 처리하면 된다.
팁
WAS 서버의 성능 튜닝의 핵심은 스레드 풀의 크기 조절이다.
이게 너무 적다면, 놀고 있는 리소스가 생길 것이고
너무 크다면 반대로 리소스 부족으로 서버가 죽을 것이다.
적당한 타협 지점을 찾아 WAS의 리소스를 최대한으로 끌어내보자.
(온프레미스가 아닌 클라우드 환경이라면 WAS 튜닝 전에 서버 증설부터 급한 대로 진행하자.)