Load Balancing Algorithm

easycelsius·2021년 7월 16일
0

Network

목록 보기
4/10
post-thumbnail

로드 밸런싱 알고리즘(Load Balancing Algorithm)

  • L4 스위치의 기능인 로드밸런싱을 수행하기 위한 알고리즘 정리.

Hashing

  • 새 연결(TCP/UDP)시 각 클라이언트에 대한 Hashing key를 가지고 경로 지정.
  • Hashing key : 클라이언트의 IP + Port 또는 IP 주소로 결정.
    • Hashing key가 변하지 않는다면, 동일 서버로 계속 접속.
    • 만일 해당 Server에서 서비스 오류 나거나 실 서버가 서버 그룹에서 제외시 재할당.
      • 실 서버가 서버 그룹에서 제외됬을 때만 할당하는 알고리즘은 Minimum Missies (Min Miss).
  • 유저가 많아졌을 때는 Load Balancing이 공평하게 이루어지는 편. 완전한 5:5는 달성하지 못함.
  • 세션 유지가 필요한 사이트(인증, 보안 등)에서 많이 사용함.

장점

  • 경로 보장.

  • 절차 간단.

  • 적은 메모리 소모.

Round-robin

  • 실서버로 세션을 순차적으로 맺어주는 방식.
    • 현재 서버가 가진 세션 수에는 관여하지 않음.
    • 실서버의 마지막 번호를 가진 서버로부터 출발하여 순차적으로 세션을 맺도록 해주는 로드밸런싱 기법.
  • 모든 클라이언트에게 동일한 취급, 실 서버와 경로는 동일 처리량 보유해야 함.
    • 만약 다르다면 Weighted round-robin 방식을 사용.
      • 가중치를 다르게 하여, 처리량이 많은 쪽에 높은 가중치를 두어, 처리량을 늘리는 방식.
  • 서버 로드 밸런싱(SLB)에서 많이 사용하는 알고리즘 방식.

Least Connection

  • 실서버의 열린 세션 수를 고려하여, 적은 쪽에 세션을 맺어주는 방식
  • 연결 수가 가장 적은 서버에 네트워크 연결방향을 설정.
  • 동적으로 변하는 요청에 대해 부하 분산을 가능하게 함.
  • 서버 처리 능력을 고려하여 가중치를 부여할 시 Weighted Least Connection 방식이 됨.
    • 가중치 설정시, Weight 값에 따라 각 서버당 연결되는 세션 수가 정규화됨.
    • 트래픽을 고루 분산할 수 있음.
    • 단, 가중치와 연산이 추가되어 메모리 사용이 높아짐.
  • 경로 보장이 안되는 단점이 있음.

Response Time

  • 서버와 통신을 하며 응답시간에 대한 학습을 통해, 응답시간이 빠른 쪽에 더 많은 세션을 보내주는 방식.
  • 각 서버들간의 서로 상이한 자원과 커넥션에 부수되는 시간과 데이터 양이 서로 다른 환경에서 사용하기 좋음.
  • 세션처리에 대한 시간을 조절할 수 있어서, 전체적인 서버 안정화를 유도할 수 있음.

Bandwidth Based Load balancing

  • 스위치와 연결된 서버들과의 대역폭을 고려하여 로드밸런싱 세션을 보내는 방식.
  • 예를 들어, 서버가 3대이며 한 쪽은 기가, 다른 두대는 10/100으로 구성시, 기가쪽에 많은 트래픽을 보내어 부하를 분산시키는 방식.
profile
항상 성장하고 싶은 개발자

0개의 댓글