etc/흥미로운 것

로드밸런싱이란

hojak99 2018. 3. 26. 10:13

Load Balancing

로드 밸런싱에 대해서 알아보도록 하겠다.

로드밸런싱이란 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리하여 해결해주는 서비스이다.

서비스 방식

네트워크 상단에 로드밸런서가 존재하여 서버로 들어오는 패킷을 실제서버로 균일하게 트래픽을 부하 분산시킨다. 만약, 실제서버 중 정상적으로 작동하지 않는 경우, 이를 감지해 정상적으로 작동하는 서버로 부하 분산시킨다.

장점

  1. 고가의 서버로 확장하지 않고 저렴한 비용으로 다수의 서버를 증설해 비용절감 가능
  2. 1대의 서버 장애가 발생하여도 서비스 중단 없이 다른 서버로 적절히 자동으로 분배하여 서비스가 계속 운용가능하게 할 수 있음
  3. 추후 사용량이 많아 서버 확장이 되어도 서비스 중단없이 서버 증설이 가능

스케줄링 알고리즘

실제서버에 처리를 분산할 때, 모든 서버로 균등하게 분산하면 스펙이 다른 서버가 존재하는 환경에서는 그 서버에 트래픽이 치우칠 수 있다. 그래서 상황에 맞는 스케줄링 알고리즘을 선택하여 사용을 해야한다.

  • RR (Round-Robin) : 실제서버를 처음부터 차례로 선택해가기 때문에 모든 서버로 균등하게 처리가 분산된다.
  • WRR(Weighted Round-Robin) : RR 과 같지만 가중치를 두워서 분산 비율을 변경한다. 가중치가 큰 서버일 수록 빈번하게 선택되므로 처리능력이 높은 서버는 가중치를 높게 설정하는 것이 좋다.
  • LC(Least-Connection) : 접속 수가 가장 적은 서버를 선택한다. 대부분의 경우 해당 알고리즘을 사용해도 충분하며, 어떤 얼고리즘을 사용하면 좋을지 모를 경우 사용해도 괜찮다.
  • WLC(Weighted Least-Connection) : LC 와 같지만 가중치를 둔다. 구체적으로는 (접속수+1)/가중치 가 최소가 되는 서버를 선택하므로 고성능 서버는 가중치를 크게한다.
  • SED(Shortest Expected Delay) : 가장 응답속도가 빠른 서버를 선택한다. 물론, 서버에 패킷을 날려 응답시간을 측정하는 것이 아닌 상태가 ESTABLISHED 인 접속수가 가장 적은 서버를 선택한다.


반응형