load balancing ; 부하조절

부하(負荷)조절은 병렬처리 컴퓨터에서 다른 프로세서들은 처리해야할 작업들이 쌓여있는데 반해, 일부 프로세서들이 유휴상태에 있는 것을 방지하기 위하여, 프로세서들 간에 작업들을 고루 분배하는데 목표를 두고 있는 기술이다. 부하조절은 과중하게 부하를 받고 있는 프로세서들이 다른 프로세서들에게 작업을 전달하거나, 유휴상태에 있는 프로세서가 다른 프로세서들에게 작업을 요청하거나, 중앙에 있는 작업 분배 장치가 개입되거나, 또는 이 모든 것들의 조합을 통해 이루어질 수 있다. 일부 시스템들은 작업이 시작된 후에도 그것을 다른 프로세서로 옮기는 것을 허용하는데, 이를 태스크 마이그레이션, 즉 작업 이주라고 부른다. 부하조절 알고리즘을 수행하는데 필요한 일량이, 전체 작업 처리나 통신에 커다란 부담이 되지 않아야 한다는 것이 중요한 점이다.

분산 스케줄링은 정적이나, 동적, 또는 선점 알고리즘이 될 수 있다. 정적 알고리즘은 현재 네트웍 부하를 무시하고 실행 중에 프로세서에게 프로세스를 할당한다. 동적 알고리즘은 더욱 유연한데, 비록 더 많은 비용이 수반되지만, 네트웍 부하를 일부 참작하여 프로세서에게 새로운 프로세스를 할당한다. 선점 알고리즘은 더욱 유연하고, 비용도 많이 소요된다. 이 알고리즘은 필요하다고 생각되면, 한 서버에서 실행되고 있는 프로세스를 다른 서버로 이주할 수 있게 해준다. 현재까지의 연구에 의하면, 동적 알고리즘이 현저한 퍼포먼스 향상을 가져오지만, 프로세스 이주 설비를 추가하면, (비록 적은 량이지만) 추가 이득이 있는 것으로 알려지고 있다.

또한, 부하조절은 서버에 요구되는 작업의 수를 예측하기 어려운 네트웍들에서 특히 중요하다. 트래픽이 매우 많은 웹사이트에서는 부하조절을 위해 대개 두 대 이상의 웹서버를 운영한다. 만약에 한 서버가 꼼짝달싹 못하게 되기 시작하면, 클라이언트로부터의 요청들은 더 많은 수용 능력을 가진 다른 서버로 넘겨진다. 부하조절은 통신 채널에도 관련될 수 있다.


이 정보는 2000년 7월 12일에 수정되었습니다.
영어판(whatis.com)