Abstract
A server load balancer is used to accept and distribute client requests to one of servers in a wireless internet proxy server cluster. LVS(Linux Virtual Server), a software based server load balancer, can support several load balancing algorithms where client requests are distributed to servers in a round robin way, in a hashing-based way or in a way to assign first to the server with the least number of its concurrent connections to LVS. An improved load balancing algorithm to consider server performance was proposed where they check upper and lower limits of concurrent connection numbers to be allowed within each maximum server performance in advance and apply the static limits to load balancing. However, they do not apply run-time server load information dynamically to load balancing. In this paper, we propose a dynamic load balancing scheme where the load balancer keeps each server CPU load information at run time and assigns a new client request first to the server with the lowest load. Using a cluster consisting of 16 PCs, we performed experiments with static content(image and HTML). Compared to the existing schemes, experimental results show performance improvement in the cases of client requests requiring CPU-intensive processing and a cluster consisting of servers with difference performance.
무선 인터넷 프록시 서버 클러스터에서 부하 분산기는 사용자의 요청을 각 서버로 분산시키는 역할을 한다. 리눅스 가상 서버(LVS: Linux Virtual Server)는 소프트웨어적으로 사용되는 부하 분산기로써 여러 가지 스케줄링 방식들을 지원한다. LVS 스케줄링 방식에는 라운드 로빈 방식, 해슁 기반 방식, 또는 서버와 부하 분산기 사이에서 서버로 연결된 커넥션 개수를 이용하는 방식이 있다. 일부 향상된 방법에서는 각 서버별로 서버의 최고 성능 범위 안에서 허용된 커넥션 개수의 상한값과 하한값을 사전에 결정하여 이를 스케줄링 시에 적용한다. 그러나, 이러한 스케줄링 방법들에서는 서버의 실시간 부하 정보들이 부하 분산에 반영되지 않는다. 본 논문에서는 서버 부하 정보에 기반한 동적 스케줄링 방식을 제안한다. 제안된 방식에서는 부하 분산기가 서버의 실시간 CPU 부하 정보를 바탕으로 가장 적은 부하를 가지는 서버에 새로운 요청을 할당한다. 16대로 구성된 클러스터링 컴퓨터와 정적 컨텐츠(이미지와 HTML)를 가지고 실험을 수행하였다. 실험결과 CPU를 많이 사용하는 요청과 호스트의 성능이 다른 경우에 대하여 종래의 스케줄링 방식보다 성능이 향상됨을 확인하였다.