(기사등록일 : 2001-07-30 18:56:34)

무지 어려운 말이다. 스케쥴링 알고리즘. 스케쥴이라는 말은 모두 잘 알고 있을 것이다. 시간표도 하나의 스케쥴링 이니까. 실제로 클러스터 관리자의 가장 중요한 역할이다. 아무리 많은 클러스터 노드가 있다고 해도 관리자가 실제로 일을 배분하는데 뇌물을 먹고 한 노드에게만 준다던지, 아니면 아예 주지 않는 다면 그건 무용지물 인 것이다. 이렇게 일을 주는 방법에도 여러 가지가 있다 이번에는 그런 스케쥴링 알고리즘에 대해서 설명하겠다. 실제로 클러스터 관리자는 뇌물을 먹지 않으니 걱정 안해도 된다.

    Round-Robin Scheduling (라운드 로빈 스케쥴링)

    말 그대로 라운드 로빈 방식이며, 서버의 상황이나 네트웍 상황, 모든 상황을 무시한채 단순하게 요청을 전달해주는 형태이다. 실제로 서버의 사양이 모두 동일하고, 같은 네트웍 상이라면 가장 단순하고 효율적일 수도 있다.

    Weighted Round-Robin Scheduling (가중치기반 라운드 로빈 스케쥴링)

    가중치란 것은 어떤 특정한 것에 가중치를 둔다는 말이다. 서버에서도 특정서버의 스펙이 굉장히 뛰어나다던지 아니면 다른 서버보다 기타 환경이 나아 더 많은 요청을 전달하고 싶을 때 해당 서버에 가중치는 주어 더 많은 요청을 처리할 수 있도록 하는 방식이다.

    가중치가 있는 라운드 로빈 스케쥴링을 사용하면 실제 서버에서 네트웍 접속을 셀 필요가 없고 동적 스케쥴링 알고리즘보다 스케쥴링의 과부하가 적으므로 더 많은 실제 서버를 운영할 수  있다. 그러나 요청에 대한 부하가 매우 많을 경우 실제 서버사이에 동적인 부하 불균형 상태가 생길 수 있다.

    Least-Connection Scheduling (최소 접속 스케쥴링)

    최소 접속 스케쥴링은 가장 접속이 적은 서버로 요청을 직접 연결하는 방식을 말한다. 각 서버에서 동적으로 실제 접속한 숫자를 세어야하므로 동적인 스케쥴링 알고리즘중의 하나이다. 비슷한 성능의 서버로 구성된 가상 서버는 아주 큰 요구가 한 서버로만 집중되지 않기 때문에, 접속부하가 매우 큰 경우에도 아주 효과적으로 분산을 한다.

    가장 빠른 서버에서 더 많은 네트웍 접속을 처리할 수 있다. 그러므로 다양한 처리 용랑을 지닌 서버로 구성했을 경우에도 훌륭하게 작동 한다는 것을 한눈에 알 수 있을 것이다. 그렇지만 실제로는 TCP의 TIME_WAIT 상태때문에 아주 좋은 성능을 낼수는 없다. TCP의 TIME_WAIT는 보통 2분이다. 그런데 접속자가 아주 많은 웹 사이트는 2분동안에 몇천개의 접속을 처리해야 할 경우가 있다. 서버 A는 서버 B보다 처리용량이 두배일 경우 서버 A는 수천개의 요청을 처리하고 TCP의 TIME_WAIT 상황에 직면하게 된다. 그렇지만 서버 B는 몇천개의 요청이 처리되기만을 기다리게 된다. 그래서 최소 접속 스케쥴링을 이용할 경우 다양한 처리용량을 지난 서버로 구성되었을 경우 부하분산이 효율적으로 되지 못할 수 있는 것이다.

    Weighted Least-Connection Scheduling (가중치 기반 최소 접속 스케쥴링)

    가중치 기반 최소 접속 스케쥴링은 최소 접속 스케쥴링의 한 부분으로서 각각의 실제 서버에 성능 가중치를 부여할 수 있다. 언제라도 가중치가 높은 서버에서 더 많은 요청을 받을 수 있다. 가상 서버의 관리자는 각각의 실제 서버에 가중치를 부여할 수 있다. 가중치의 비율인 실제 접속자수에 따라 네트웍 접속이 할당된다. 기본 가중치는 1이다.

꿔니(fuga@ggwuni.com)





Copyright(c) 2001, 수퍼유저코리아 All Rights Reserved.
서버구축(운용)상담 : e-mail : webmaster@superuser.co.kr