본 게시물은 개인적인 의견으로 작성되었으니 절대적인 정보가 아닐 수 있습니다. 참고만 하시고 궁금한 사항이 있으시면 연락주세요.

티스토리 뷰

Windows - CATEGORY

Server Load Balancing Algorithm

시퀄人 2016.09.21 15:22

로드밸런싱알고리즘


1. Round Robin 

 - Real Server로 session을 순차적으로 맺어주는 방식. 

- 현재의 서버가 가지고 있는 session수는 관여하지 않음. 

- weighting 옵션이 지원됨. 

   

  모든 클라이언트는 동일하게 취급되며 실서버 혹은 경로는 같은 처리량을 보유해야 함. 

  SLB에 많이 사용되며 만약 각기 다른 처리 능력을 가진 서버가 있을 경우 weigted round-robin 알고리즘이 더 효율적. 

   

  roundrobin은 리얼서버의 마지막 번호를 가진 서버로부터 출발하여 

  순차적으로 세션을 맺도록 해주는 로드밸런싱 기법. 

   

  예를 들어 5대의 서버가 있다면.. 

  5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 4, 3, 2, 1........ 

  위와같은 순서로 로드밸런싱 하게 됨. 

   

  특별한 서비스가 있지 않은 일반적인 웹사이트를 운영하는 곳에서 사용. 

  leastconn 과 roundrobin은 관리자들의 요구에 따라 선택하며 

  가장 단순한 로드밸런싱이므로 알테온에 거의 부하를 주지 않음. 

  무조건 한쪽식 세션을 연결해줌. 

    

  장점 : 거의 5:5로 분산이 가능함. 

  단점 : 경로보장이 안됨. 

   

   

2. Least Connection 

- Real Server의 Open 세션 수를 고려한 다음, 가장 적은수의 open session을 가진 Real Server로 session을 맺어주는 방식. 

- Weighting옵션 : 설정된 Weight값에 따라 각 Server당 연결되는 수가 정규화된다. 

- Maximum Connections 옵션 : 각 Real  Server의 현재 session수가 설정된 Max Connection수에 도달한 경우 

                                             더이상 새로운 session이 할당되지 않음. 

                                             만일 백업 서버가 설정된 경우 해당 서버가 대치되어 서비스함. 

   

- 현재 세션이 가장 적은쪽으로 세션을 보내줌. 

- 현재 세션수를 고려하기 때문에 약간의 메모리자원을 소비한다. 

- default metric 이기때문에 제일 많이 사용되는 메트릭이고 일반적인 서버 로드밸런싱의  경우에는 대부분 이 옵션을 많이 사용. 

- 세션을 적게 받은쪽에 세션을 연결해줌. 

   

  장점 : 거의 5:5로 분산이 가능하다. 

  단점 : 경로보장이 안된다. 

   

   

3. Response Time 

 -  각 Real Server들이 서로 상이한 resource와 connectino에 부수되는 시간과 데이터 양이 서로 다른 환경에서 사용할 수 있다. 

-  알테온이 서버와 통신을 하면서 그 응답시간에 대한 

  학습을 통하여 응답시간이 빠른 쪽으로 많은 세션을 보내주고 응답이 느린쪽으로 세션을 적게 보내는 방식. 

   

   국내 유명 부동산 사이트에서 사용하고 있는 방식. 

   이 사이트의 경우는 처음 leastconnection 방식을 사용하였음. 

   그런데 어느 순간 서버들이 hang이 걸리는 경우가 발생하였다고 하는데 이유를 보니까 어떤 현상에 의해서

   서버의 부하가 조금 올라갔고 

   그러면서 사용자 쿼리에 대한 응답을 조금 느리게 해주게 되었고 

   그러다 보니까 세션이 줄어들게 되고 세션이 줄어들면 알테온은 

   또 세션을 보내게 되고 그러면 또 서버의 부하가 늘어나고 이렇게 악순환이 되다보니 서버에 행이 걸린 경우였음. 

   그래서 응답시간으로 로드 발란싱 해 보니 응답이 바로 오지 않는곳으로는 트래픽을 보내지 않아서 서버가 안정화되었음. 

   

   

4. Hash 

 - 알테온 자체에서 제공하는 hashing algorithm을 사용하여 로드발란싱 하는 기법. 

- Source IP가 Real Server Group내의 Server에 대한 Index를 생성하는 요소로 사용된다. 

- 동일한 User에 Service 요청은 동일한 Server로 연결된다. 

- 만일 해당 Server에 Service 오류가 발생하거나, 어떤 Real Server가 Server Group에서 제외되거나

   추가된 경우 재할당된다. 

- Weight 옵션 사용불가 

- Max Connection 지원 

- 접속 User수가 많을 경우 Load Balancing이 공평하게 이루어 진다. 

   

  Hashing (hash) 알고리즘에서는 새로은 연결(TCP/UDP) 시 

  각 클라이언트에 대해 hashing key를 가지고 경로를 지정한다. 

  Hashing key는 클라이언트의 IP + port 혹은 IP 주소만으로 결정된다. 

   

  Clients와 Server 간에 한번 성립된 session을 계속해서 유지해 주는 

  방식으로 특정 client는 특정 server로만 접속하게 된다. 

   

  이 방식은 clients source IP address (32 bit) 값을 real server의 대수로 나눈 나머지 값으로 connection할 server 결정 

  source ip와 destination ip를 조합을 한다. 

  예를 들어 192.168.1.1 이라는 source ip와  10.10.10.254 라는 destination ip가 있다고 할 경우.. 

  그리고 source 가 사용자 이고 destination 이 vip 라고 하자. 

   

  그러면 이 두 아이피를 조합하여 어떤 수를 만들어 냄. 

   

  그래서 만약 끝자리 아이피.. 1 과 254를 조합하여 255라는 수를 만들어 냅니다. 

   

  이 수를 설정된 리얼 서버의 수로 나눔을 합니다. 

   

  만약 서버가 3대라면 나머지는 0 이 됨(255/3=85 나머지0). 

  그러면 리얼서버 1번으로 접속하게 된다. 

   

  만약 조합이 124이다.. 그러면 3으로 나눈 나머지는 1이 됨.. 

  (124/3=41 나머지1) 그러면 2번 리얼서버로 가라.. 라는 식. 

   

  그러면 다음에 접속을 하더라도 vip와 client ip가 동일 하므로 나머지 값은 항상 동일 하게 됨..

  그 결과 항상 같은 서버로 접속하게 되는 것임. 

   

  이런 경우는 보통 세션을 유지해야할 필요가 있는 사이트(인증, 보안 등등)에서 주로 사용함. 

   

  ip를 hash 테이블을 생성해서 나온값으로 서버를 선정함. 

  따라서 client쪽에서 한번 선택된 리얼 서버는 계속 한쪽 서버로 서비스 하게 됨. 

   

  장점 : 경로가 보장된다, 메모리를 적게 사용하고 요구 절차가 간단. 

  단점 : 세션이 5:5로 분산이 어렵다. 

   

   

5. Minimum Missies (Min Miss) 

- Hash와 유사한 방식을 사용 

- Hash와 달리 어떤 Server가 Server Group에서 제외된 경우 해당 서버에 할당된 사용자에 대해서만 재할당 작업을 한다. 

- Weighting 옵션 사용 불가 

- Max Connection 지원 

- 역시 clients source IP address (32 bit) 값을 real server의 대수로 나눈 나머지 값으로 connection할 server 결정 

- 그러나, 이 Algorithm은 Cache Redirection에 주로 사용하도록 권장 

        

   hash와 minmiss는 알테온 자체에서 정해진 hashing algorithm을 

   적용시킨다. 여기서 두가지 기법의 차이는 로드밸런싱이 이루어지다가 특정서버가 down됐을경우 이 서버와 세션을

   맺고 있던사용자들을 어떻게 처리할것인가 하는 부분에 약간 차이가 있음. 

      

 * Minimum Missies방식보다는 Hash 방식이 더 선호되는 방식. 

 * Proxy를 사용하는 User Group은 Source IP가 동일하므로 Hashing이나 Minimum Missies를 사용하면 안됨. 

   

   

6.bandwidth based loadbalancing 

 - bandwidth 로드밸런싱은 말 그대로 알테온과 연결된 서버들과의 

 - 대역폭을 고려하여 로드밸런싱 세션을 어떻게 보낼것인가를 결정하게 되는  방식. 

   

   예를 들어 서버가 3대정도 있고 한대는 기가로, 다른 두대는 10/100으로 물려있다고 할경우 기가 쪽으로 더욱 많은

   트레픽을 보  내게 됩니다. 

   아직 이 옵션을 사용하는 사이트는 많이 없음.

   

출처: <http://chonnom.com/bbs/board.php?bo_table=B19&wr_id=24&sfl=wr_subject%7C%7Cwr_content&stx=&sst=wr_hit&sod=desc&sop=and&page=1>

댓글
댓글쓰기 폼
1 2 3 4 5 6 7 8 9 10 ··· 25