초록
HTTP/l.0과 새로운 HTTP/1.1이 함께 사용됨으로써 단일 HTTP 연결이 단일 사용자 요청을 의미하던 환경에서 연구되었던 웹 서버 부하 분산 정책은 수정이 불가피하게 되었다. HTTP/l.0 환경에서는 사용자의 단일 요청만을 가지고 서버를 할당하였으나, 지속적인 HTTP 연결을 지원하게 되면서 하나의 HTTP 연결을 통해 여러 개의 요청을 서버에게 요구할 수 있으므로, 첫 번째로 도착한 요청 하나만으로는 앞으로 그 HTTP 연결을 통해 전송될 사용자의 요청이 서버의 자원을 얼마나 소비하게 될 것인지 전혀 예상할 수 없게 된다. 본 논문에서는 HTTP/1.1을 효율적으로 지원하는 부하 분산 정책을 제안하고자 한다. 이 정책은 사용자의 첫 번째 요청이 전달되면 그 요청의 내장 객체 정보와 현재 살아있는 HTTP 연결의 에이징(aging)을 고려하여 서버를 선택하는 알고리즘이다. 그리고 디스패처의 잘못된 분산 결정으로 인해 시스템의 성능에 누적되는 악영향을 최소화하기 위한 기법도 제시한다.
With HTTP/1.0, a single request means a single HTTP connection so that the granular unit of dispatching is the same as real load. But with persistent HTTP connection, multiple requests may arrive on a single TCP connection. Therefore, a scheme that dispatches load at the granularity of individual requests constrains the feasible dispatching policies In this paper we propose a new connection dispatching polity for supporting HTTP/1.1 persistent connections in cluster-based Web servers. When the request of a base html file arrives, the dispatcher gets the subsequent load arriving on that connection using the embedded objects information. After the dispatcher stores the load information in Load Table, the dispatcher employs the connection aging strategy on live persistent connections on the passage of time. The results of simulation show about $1.7\%\~16.8\%$ improved average response time compared to existing WLC algorithm.