초록
본 논문에서는 다중 쓰레드 기반의 서버 프로그래밍을 위한 예측 기반의 동적 쓰레드 풀 기법을 제안하였다. 기존의 쓰레드 풀(Thread fool) 모델은 고정된 쓰레드 풀(Hounded Thread Pool)모델로, 서버에 최적화된 개수의 쓰레드를 유지하면서 다수의 요청에 대해 빠르게 응답할 수 있다는 장점이 있으나, 사용자의 접속이 적을 경우에도 고정된 시스템 자원을 점유하여야 하므로, 자원의 효율적인 사용에 문제가 있다. 이를 극복하기 위해 동적으로 쓰레드 풀의 크기를 변경하는 워터마크 쓰레드 풀 모델이 개발되었고, 본 논문에서는 이를 기반으로 지수평균을 사용하여 앞으로 필요한 쓰레드의 개수를 예측하고 쓰레드를 사전에 생성하여 더욱 효율적으로 자원을 활용하도록 하는 예측기반의 동적 쓰레드 풀 기법을 제안하였다. 제안한 기법은 사용자의 요청이 많을 경우 사용자 요청에 대한 응답시간을 빠르게 하구 요청 량이 적을 경우에는 불필요한 자원을 점유하지 않게 하여 기존의 워터마크 쓰레드 풀 모델에 비해 보다 성능이 좋고 자원을 효율적으로 활용함을 실험을 통해 확인하였다.
A dynamic thread pool model is one of a multi-thread server programming model that handles many requests from users concurrently. In most cases, bounded thread pool model is used for server programming. Because it reduces a thread overhead by creating a pool of threads in advance, it ran response more quickly to users' requests. But this model always occupies system resource when there are small amount of requests, which prevents other applications from using available resources. In this paper, for the utilization of occupied but unused resources, we proposed and implemented a prediction-based dynamic thread pool scheme using customized exponential average. From the experiments, we show that this scheme outperforms hounded thread pool model and uses small resources.