학습 기반의 동적 쓰레드 풀 기법을 적용한 웹 서버의 설계 및 구현

Design and Implementation of a Web Server Using a Learning-based Dynamic Thread Pool Scheme
  • 유서희
  • 강동현
  • 이권용
  • 박성용

초록

네트워크의 발전에 따라 사용자들이 늘어나게 되면서 웹 서버들은 동시에 접속하는 다수 사용자의 서비스 요청을 처리할 수 있는 다중 쓰레드 기법을 활용하고 있다. 고정된 쓰레드 풀 기법은 고정적인 시스템 자원을 점유해야 하는 문제점이 있다. 반면에 동적으로 쓰레드 풀 기법인 워터마크 쓰레드 풀 기법은 사용자의 요청량에 따라 쓰레드 수를 적절하게 조절하지만, 지정한 최대값을 넘는 요청량에 대해서는 응답이 제때에 이루이지지 않는 단점이 있다. 따라서 본 논문에서는 다양한 요청량이 존재하는 다중 쓰레드 환경의 서버 프로그래밍을 위한 학습 기반의 동적 쓰레드 풀 기법을 적용한 웹 서버를 제안한다. 제안하는 기법은 쓰레드 풀을 사용하는 웹 서버 중 아파치(Apache) worker 다중 처리 모듈(Multi-processing Module)에 AR(Auto Regressive) 기법을 통해 다음 주기의 작업 요청량을 예측하고 사전에 쓰레드를 생성한다. 기존 기법과 달리, 일정주기의 증감 추세가 없는 작업 요청량에도 필요한 쓰레드의 수를 정확하게 설정하기 위해 최근접 이웃(K-Nearest Neighbor) 알고리즘을 사용하여 작업 요청량에 따른 쓰레드의 수를 사전에 학습한다. 필요한 쓰레드의 수를 설정하기 위해 사전에 학습 되어진 개체들과 비교하여 유사한 개체를 선택하여 예측된 작업 요청량에 따른 쓰레드의 수를 결정하고 쓰레드를 생성한다. 본 논문에서는 필요한 쓰레드의 수를 동적으로 변경함으로써 사용자 응답 시간을 빠르게 하고, 사용자의 요청량에 맞게 쓰레드 수를 관리함으로써 시스템 자원의 활용도를 높일 수 있다.

키워드

Thread poolmulti-processing moduleARK-Nearest Neighbor algorithm쓰레드 풀다중 처리 모듈AR최근접 이웃 알고리즘
제목
학습 기반의 동적 쓰레드 풀 기법을 적용한 웹 서버의 설계 및 구현
제목 (타언어)
Design and Implementation of a Web Server Using a Learning-based Dynamic Thread Pool Scheme
저자
유서희강동현이권용박성용
발행일
2010-01
저널명
정보과학회 컴퓨팅의 실제 논문지
16
1
페이지
23 ~ 34