부하 분산

From CS Wiki
Revision as of 08:31, 23 April 2020 by 아이리움 (talk | contribs)
Load Balancing, 로드 밸런싱
1개의 서버나 방화벽에 트래픽이 집중되는 것을 분산시키기 위한 스위칭 기술
  • 과부하 방지 및 네트워크 속도 향상, 장애 허용, 고가용성 등을 이룰 수 있다.
  • 주로 L4스위치나 L7스위치를 이용한다.

로드 밸런싱 알고리즘

  • 라운드 로빈
    • Real Server로 session을 순차적으로 맺어주는 방식.
    • 현재의 서버가 가지고 있는 session수는 관여하지 않음.
    • Weighting 옵션 지원됨
  • Hash(Hashed IP)
    • Source IP가 Real Server Group내의 Server에 대한 Index를 생성하는 요소로 사용됨
    • 동일한 User에 Service 요청은 동일한 Server로 연결
    • Weight 옵션 사용불가
    • Max Connection 지원
    • 접속 User수가 많을 경우 Load Balancing이 공평하게 이루어짐
  • Least Connection
    • Real Server의 Open 세션 수를 고려한 다음, 가장 적은수의 open session을 가진 Real Server로 session을 맺어주는 방식
    • Weighting옵션 : 설정된 Weight값에 따라 각 Server당 연결되는 수가 정규화된다.
    • Maximum Connections 옵션 : 각 Real Server의 현재 session수가 설정된 Max Connection수에 도달한 경우 더이상 새로운 session이 할당되지 않음
    • 접속 경로가 보장되지 않는다.
  • Response Time
    • 학습을 통하여 응답시간이 빠른 쪽으로 많은 세션을 보내주고 응답이 느린쪽으로 세션을 적게 보내는 방식
    • 각 Real Server들이 서로 상이한 자원과 연결량에 부수되는 시간과 데이터 양이 서로 다른 환경에서 사용
  • 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에 주로 사용하도록 권장
  • Bandwidth Based
    • 대역폭을 고려하여 로드밸런싱 세션을 어떻게 보낼것인가를 결정하게 되는 방식