2012.06.22 13:20
L4 로드밸런서 알고리즘
1. Hashing algorithm
Hashing (hash) 알고리즘에서는 새로은 연결(TCP/UDP)시 각 클라이언트에
대해 hashing key를 가지고 경로를 지정합니다.
Hashing key는 클라이언트의 IP + port 혹은 IP 주소만으로 결정됩니다.
절차가 간단하기 때문에 메모리를 적게 소모하는 장점이 있습니다.
2. Round-robin algorithm
모든 클라이언트는 동일하게 취급되며 실 서버 혹은 경로는 같은 처리량을 보유해야 합니다.
SLB에 많이 사용되며 만약 각기 다른 처리 능력을 가진 서버가 있을 경우
weigted round-robin 알고리즘이 더 효율적입니다.
Ex) A, B 두대의 서버가 존재하며 100번의 요청이 있을 경우.
A : 50
B : 50
위와 같이 순차적으로 모두 동일하게 처리 됩니다.
3. Weighted round-robin algorithm
Weighted round-robin 알고리즘은 서로 다른 처리 능력을 가진 서버가 있을 경우 사용합니다.
가중치를 주어 많이 처리할 수 있는 서버로 많은 트래픽을 할당합니다.
Ex) A, B 두대의 서버가 존재하며 100번의 요청이 있을 경우.
/ 가중치 A : 8 , B : 2
A : 80
B : 20
4. Least connection algorithm
이 알고리즘은 연결 수가 가장 적은 서버에 네트워크 연결방향을 정합니다.
동적인 분산 알고리즘으로 각 서버에 대한 현재 연결 수를 동적으로 카운트할 수 있습니다.
동적으로 변하는 요청에 대한 부하를 분산시킬 수 있습니다.
5. Weighted least-connectin algorithm
이 알고르짐은 서버의 처리 능력을 고려하여 가중치를 부여하면서
least-connection scheduling을 적용하여 트래픽을 고루게 분산시키는 방법입니다.
위에서 언급 된 장점들이 모두 합쳐져 있는 알고리즘 이라고 볼 수 있습니다.
하지만 가중치와 여러 연산이 필요하기에 가장 많은 메모리를 사용하게 됩니다.