Skip to Content
Suffering builds character
아카이브13.프로세스,스레드특징소켓, 스레드5.스레드 풀링 모델

5.스레드 풀링 모델

1. 스레드 풀링 모델, Thread Pool

요청당 스레드 모델의 문제인 스레드 증가에 따른 OOM(Out of Memory, 메모리 초과) 오류를 피하기 위해서는 스레드 풀링 기법을 활용할 수 있음

스레드 풀은 커넥션 풀과 유사한 개념으로 서버를 실행하기 전에 적절한 수의 스레드를 미리 생성해두어 응답하는 방식을 말함

2. 스레드 풀링 모델의 동작 방식

스레드 풀링 모델을 활용하는 서버의 동작 방식은 다음과 같음

  1. 클라이언트가 서버에 접속하면 서버 소켓으로부터 클라이언트 소켓을 얻어옴
  2. 스레드 풀에서 사용 가능한 스레드를 가져와서 해당 스레드에 클라이언트 소켓을 할당
  3. 클라이언트 소켓에서 발생하는 I/O 처리를 할당된 스레드가 전담

2-1. 스레드 풀링 모델의 한계점

이와 같은 방식에서는 동시에 접속 가능한 사용자 수가 스레드 풀에 지정된 스레드 수에 의존하는 현상이 발생
→ 애플리케이션에 동작하는 스레드가 너무 많으면 늘어나는 컨텍스트 스위칭 시간으로 인해 성능이 무한정 좋아지진 않음

따라서 스레드 풀 내에 적정한 개수의 스레드를 생성, 관리하는 것이 필요
→ 적정 스레드풀 개수를 구하는 공식이 있(지만 보다 적정 스레드 개수는 시스템 운영 기록을 통해 조절해나가는 것이 권장됨)

Last updated on