Thuật toán Least Connections (LC)

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 51 - 52)

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

2.6.6Thuật toán Least Connections (LC)

Trong thuật toán LC, yêu cầu từ phía người dùng sẽ được chuyển vào server có ít kết nối nhất trong hệ thống tại thời điểm đó. Thuật toán này được coi như thuật toán động vì nó cần phải đếm số kết nối “đang hoạt động” của các server gần giống nhau về cấu hình, LC có khả năng hoạt động tốt ngay cả khi tải của các kết nối biến thiên trong một khoảng lớn. Do đó, sử dụng LC sẽ khắc phục được nhược điểm của RR.

Giả sử có n server Si, i = 1, 2, … , n. Số lượng connections đang hoạt động là Ci với i =1, 2, …, n. All_Connections là tổng Ci.

Yêu cầu tiếp theo sẽ được chuyển đến server j, trong đó: Cj/All_Connections = min {Ci/All_Connections}; i =(1, 2, .., n)

Vì giá trị All_Connections là không đổi tại thời điểm tính nên có thể lựa chọn server Cj theo công thức:

Cj= min {Ci}, i = 1, 2, …, n.

Nhìn bề ngoài có vẻ như LC cũng có khả năng hoạt động tốt khi các server có cấu hình biến thiên khác nhau, nhưng trên thực tế điều đó là không đúng. Nguyên nhân chính là do trạng thái Time_Wait của TCP. Time_Wait này thường được đặt là 2 phút, trong 2 phút đó một website “bận rộn” có thể nhận tới hàng chục nghìn kết nối liên tục. Giả sử như server có khả năng xử lý gấp đôi server B, server A đang xử lý hàng nghìn yêu cầu và giữ lại những yêu cầu này trong trạng thái Time_Wait của TCP, trong khi đó server cũng phải xử lý hàng yêu cầu như server A, nhưng vì cấu hình server B yếu hơn nên sẽ chậm chạp hơn rất nhiều. Như vậy thuật toán LC hoạt động không tốt khi các server có cấu hình khác nhau.

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 51 - 52)