Thuật toán Round Robin (RR)

Một phần của tài liệu NGHIÊN CỨU KỸ THUẬT NETWORK LOAD BALANCING TRONG HỆ THỐNG MẠNG LINUX (Trang 48 - 49)

c) Nhận biết ngữ cảnh trong caches (Content-aware cache switching)

2.6.2Thuật toán Round Robin (RR)

RR là thuật toán được dùng thường xuyên nhất trong các hệ thống vừa và nhỏ, có ít đòi hỏi về khả năng mở rộng. Một kết nối mới sẽ được gửi đến server kế tiếp trong cụm server và cứ quay vòng như vậy. RR làm việc rất tốt trong mọi cấu hình, nhưng sẽ tốt hơn nếu như các trang thiết bị đang được cân bằng tải khác nhau về tốc độ xử lý, tốc độ kết nối hoặc bộ nhớ.

Một cách để thực thi thuật toán này là sử dụng một server-map. Bộ cân bằng tải sẽ được khai báo như một con trỏ proxy, nó sẽ có biến server-map là một mảng các server và biến srv_rr_idx để chỉ định server tiếp theo trong chu kì round robin.

Ví dụ về thuật toán RR:

/* Kiểm tra xem có server nào sẵn có không bằng cách kiểm tra kích thước server-map */

If (srv_map_size =0) Return Null;

If (rsv_ii_idx >proxy -> srv_map_size)

/* Nếu đến cuối mảng srv_map update lại giá trị srv_rr_idx */ Srv_rr_idx =0;

Int newidx = px ->srv_rr_idx; Do {

Srv =proxy -> srv_map [newidx++];

Return srv;

Proxy -> srv_rr_idx =newidx; } while (newidx!= px-> srv_rr_idx)

/* Thực hiện cho đến khi lấy được server tiếp theo */

RR hoạt động tốt khi các server có khả năng xử lý (cấu hình) tương tự nhau, tuy nhiên sẽ có hiện tượng mất cân bằng khi các server có cấu hình khác nhau hoặc sau một thời gian số kết nối đang hoạt dộng ở một server đang nhiều hơn hẳn một server khác nhưng lượng kết nối tiếp theo mà các server này nhận được vẫn bằng nhau. Do đó, một server sẽ phải xử lý nhiều hơn hẳn các server khác. Tuy vậy, vì tính đơn giản của nó nên nó hoạt động rất hiệu quả (không phải mất thêm thời gian tính toán các thông số khác nên việc phân tải diễn ra rất nhanh). Nếu như các server hoạt động bình thường và không xảy ra sự cố thì sử dụng RR rất tốt.

Điểm yếu của RR là hai yêu cầu liên tục từ phía một người dùng có thể sẽ được gửi vào hai server khác nhau. Điều này không tốt vì khi người dùng đang được kết nối vào một server, thông tin mà họ cần đang ở server đó, nếu kết nối tiếp theo vẫn được server đó xử lý thì sẽ góp phần tăng tốc độ đáp ứng cho người dùng. Do đó, thuật toán RR thường được cài đặt cùng với các phương pháp duy trì session như sử dụng cookie.

Một phần của tài liệu NGHIÊN CỨU KỸ THUẬT NETWORK LOAD BALANCING TRONG HỆ THỐNG MẠNG LINUX (Trang 48 - 49)