Từ điển học thuật Kỹ thuật và công nghệ

Cân bằng tải là gì? Khái niệm, thuật toán và ứng dụng

Tiếng Anhload balancing

Tên gọi khácphân phối tảiđiều phối tải

Cân bằng tải là kỹ thuật phân phối lưu lượng mạng và khối lượng tính toán trên nhiều máy chủ nhằm tối ưu hoá hiệu năng, giảm độ trễ và gia tăng tính sẵn sàng của toàn bộ hệ thống.

Cập nhật 1/9/2026

Cân bằng tải (load balancing) là kỹ thuật phân phối lưu lượng mạng và khối lượng công việc tính toán trên một tập hợp gồm nhiều máy chủ hoặc tài nguyên xử lý nhằm tối ưu hoá hiệu suất, ngăn ngừa tình trạng nghẽn cổ chai và gia tăng độ tin cậy của toàn bộ hệ thống. Trong kiến trúc hệ thống phân tán và điện toán đám mây, bộ cân bằng tải đóng vai trò như một điểm điều phối trung tâm tiếp nhận yêu cầu từ máy khách và chuyển tiếp đến các nút dịch vụ phía sau dựa trên các thuật toán định tuyến xác định.

Khái niệm và bản chất của cân bằng tải

Bản chất cốt lõi của cân bằng tải là giải quyết bài toán phân bổ tài nguyên trong các hệ thống xử lý song song và phân tán. Khi lưu lượng truy cập của người dùng vượt quá năng lực phục vụ của một máy chủ vật lý đơn lẻ, việc nâng cấp cấu hình phần cứng (mở rộng theo chiều dọc) nhanh chóng chạm ngưỡng giới hạn kỹ thuật và chi phí. Cân bằng tải cho phép mở rộng theo chiều ngang thông qua việc bổ sung các nút máy chủ đồng nhất hoặc không đồng nhất vào nhóm phục vụ.

Bộ cân bằng tải (load balancer) hoạt động như một thực thể trung gian giữa người dùng và cụm máy chủ phía sau. Khi một yêu cầu được gửi đến, bộ điều phối sẽ đánh giá trạng thái hoạt động, tải hiện thời và các tiêu chí định tuyến để đưa ra quyết định chuyển tiếp tối ưu. Kỹ thuật này không chỉ phân tán đều năng lực xử lý mà còn cung cấp khả năng chịu lỗi: khi một máy chủ gặp sự cố hoặc ngừng hoạt động để bảo trì, lưu lượng truy cập sẽ tự động được điều hướng đến các máy chủ khoẻ mạnh còn lại trong cụm.

Phân loại theo tầng mạng

Trong kiến trúc mạng máy tính, các giải pháp cân bằng tải được phân chia phổ biến dựa trên tầng hoạt động trong mô hình kết nối các hệ thống mở.

Cân bằng tải tầng giao vận

Cân bằng tải tầng giao vận hoạt động tại tầng bốn của mô hình mạng, nơi quyết định định tuyến được đưa ra dựa trên thông tin địa chỉ IP nguồn, địa chỉ IP đích và cổng kết nối TCP hoặc UDP của các gói tin. Tại tầng này, bộ cân bằng tải không giải mã hay kiểm tra dữ liệu payload bên trong gói tin, giúp quá trình chuyển tiếp diễn ra với thông lượng cao và độ trễ cực thấp.

Đặc điểm nổi bật của phương pháp này là tính đơn giản và hiệu năng xử lý gói tin vượt trội, thích hợp cho các dịch vụ truyền tải luồng dữ liệu lớn hoặc các giao thức mạng không dựa trên HTTP. Tuy nhiên, do không hiểu nội dung ứng dụng, bộ điều phối tầng giao vận không thể thực hiện các chính sách định tuyến dựa trên đường dẫn tài nguyên, loại dữ liệu hoặc thông tin phiên làm việc của người dùng.

Cân bằng tải tầng ứng dụng

Cân bằng tải tầng ứng dụng hoạt động tại tầng bảy của mô hình mạng, có khả năng phân tích toàn diện nội dung của các thông điệp ứng dụng như HTTP và HTTPS. Bộ cân bằng tải hoạt động như một reverse proxy hoàn chỉnh, chấm dứt kết nối với máy khách, kiểm tra các tiêu đề, cookie, phương thức yêu cầu và đường dẫn URL trước khi thiết lập một kết nối mới tới máy chủ nội bộ thích hợp.

Phương pháp này cung cấp khả năng điều phối thông minh, cho phép phân chia lưu lượng theo dịch vụ vi mô, chuyển hướng nội dung tĩnh sang cụm máy chủ lưu trữ chuyên dụng hoặc duy trì tính bám dính phiên làm việc. Nhược điểm chính là tiêu tốn nhiều tài nguyên CPU và bộ nhớ hơn do phải xử lý giải mã TLS/SSL và phân tích cú pháp gói tin ở mức ứng dụng.

Tiêu chí so sánh Cân bằng tải tầng giao vận Cân bằng tải tầng ứng dụng
Tầng hoạt động Tầng bốn (TCP/UDP, địa chỉ IP và cổng) Tầng bảy (HTTP, HTTPS, URL, Cookie, Header)
Hiệu năng và thông lượng Rất cao, độ trễ xử lý thấp do không phân tích gói Trung bình, tiêu tốn năng lực xử lý CPU cho phân tích dữ liệu
Khả năng định tuyến thông minh Hạn chế, chỉ dựa trên thông số kết nối mạng cơ bản Rất linh hoạt, định tuyến dựa trên nội dung yêu cầu cụ thể
Chấm dứt kết nối SSL/TLS Thường chuyển tiếp thẳng dữ liệu mã hoá (Passthrough) Giải mã và xử lý chứng chỉ bảo mật trực tiếp (Termination)

Nguyên lý và các thuật toán điều phối

Theo tổng quan của Elmagzoub và cộng sự (2021), các thuật toán điều phối cân bằng tải được chia thành hai trường phái chính là thuật toán tĩnh và thuật toán động, nhằm tìm lời giải cho bài toán phân bổ tài nguyên tối ưu.

Các thuật toán tĩnh

  • Xoay vòng (Round Robin): Các yêu cầu mới được phân bổ tuần tự lần lượt cho từng máy chủ trong danh sách cấu hình theo thứ tự vòng tròn cố định. Thuật toán này hoạt động hiệu quả khi các máy chủ có cấu hình phần cứng tương đương và các tác vụ có khối lượng tính toán đồng đều.
  • Xoay vòng có trọng số (Weighted Round Robin): Mỗi máy chủ được gán một hệ số trọng số đại diện cho năng lực tính toán. Máy chủ có trọng số cao hơn sẽ nhận tỷ lệ yêu cầu lớn hơn trong mỗi chu kỳ điều phối.
  • Băm địa chỉ IP (IP Hash): Sử dụng hàm băm trên địa chỉ IP của máy khách để tạo khoá ánh xạ vào một máy chủ xác định, đảm bảo cùng một máy khách luôn kết nối tới cùng một máy chủ nội bộ.

Các thuật toán động

  • Ít kết nối nhất (Least Connections): Bộ điều phối theo dõi số lượng kết nối đang mở và gán yêu cầu mới cho máy chủ hiện có ít kết nối hoạt động nhất, giúp thích ứng tốt khi thời gian xử lý giữa các yêu cầu có sự chênh lệch lớn.
  • Ít kết nối có trọng số (Weighted Least Connections): Kết hợp số lượng kết nối thực tế với trọng số năng lực phần cứng của máy chủ để tối ưu hoá việc chia tải.
  • Thời gian phản hồi ngắn nhất (Least Response Time): Lựa chọn máy chủ dựa trên sự kết hợp giữa số lượng kết nối hiện hành và độ trễ phản hồi trung bình của máy chủ đó trong các chu kỳ gần nhất.

Thuật toán băm nhất quán

Trong các hệ thống phân tán quy mô lớn và mạng phân phối nội dung lưu trữ đệm, thuật toán băm nhất quán (consistent hashing) do Karger và cộng sự công bố năm 1997 là một bước đột phá quan trọng. Thuật toán này ánh xạ cả máy chủ và khoá dữ liệu lên một vòng không gian băm tròn có kích thước cố định.

Khi thêm mới hoặc loại bỏ một máy chủ khỏi cụm, thuật toán băm nhất quán chỉ yêu cầu tái phân phối trung bình KN\frac{K}{N} phần tử dữ liệu, với KK là tổng số khoá và NN là số lượng máy chủ trong hệ thống. Điều này khắc phục triệt để sự cố vỡ bộ nhớ đệm hàng loạt thường xảy ra ở các hàm băm modulo truyền thống khi số lượng máy chủ thay đổi.

Nguyên lý sức mạnh của hai lựa chọn

Trong nghiên cứu về phân phối tải ngẫu nhiên hoá, Mitzenmacher (2001) đã phân tích chi tiết nguyên lý sức mạnh của hai lựa chọn (power of two choices). Thay vì truy vấn trạng thái toàn cục của toàn bộ nn máy chủ vốn gây áp lực lớn lên mạng lưới truyền thông, hệ thống chỉ cần chọn ngẫu nhiên 2 máy chủ độc lập và gán tác vụ cho máy chủ có hàng đợi ngắn hơn.

Nghiên cứu của Mitzenmacher (2001) chứng minh rằng việc áp dụng nguyên lý này giúp giảm chiều dài hàng đợi tối đa theo hàm mũ từ:

O(lognloglogn)O\left(\frac{\log n}{\log \log n}\right)

khi chọn ngẫu nhiên một máy chủ duy nhất, xuống mức:

O(loglognlog2)O\left(\frac{\log \log n}{\log 2}\right)

với nn là tổng số máy chủ trong cụm phân tán. Kỹ thuật này được ứng dụng rộng rãi trong các hệ thống cân bằng tải hiện đại để đạt được hiệu quả phân bổ cao mà không cần duy trì bộ nhớ trạng thái tập trung phức tạp.

Cơ chế kiểm tra sức khoẻ và duy trì phiên

Một bộ cân bằng tải không thể vận hành tin cậy nếu thiếu cơ chế kiểm tra sức khoẻ (health check) định kỳ. Bộ điều phối liên tục gửi các gói tin thăm dò (như kiểm tra cổng TCP hoặc yêu cầu HTTP GET đến một điểm cuối xác định) đến từng máy chủ nội bộ. Nếu một máy chủ không phản hồi đúng theo ngưỡng cấu hình về thời gian chờ hoặc số lần thử lại, bộ cân bằng tải sẽ tự động cách ly nút đó khỏi cụm phục vụ cho đến khi trạng thái hoạt động bình thường được khôi phục.

Đối với các ứng dụng yêu cầu lưu trữ trạng thái phiên của người dùng (session persistence hay sticky sessions), bộ cân bằng tải tầng ứng dụng có thể sử dụng cơ chế chèn cookie hoặc băm thông tin phiên để bảo đảm tất cả yêu cầu tiếp theo từ cùng một phiên làm việc được chuyển tiếp về đúng máy chủ đã khởi tạo ngữ cảnh ban đầu.

Vấn đề truyền tải thông tin máy khách và tiêu chuẩn mạng

Khi yêu cầu đi qua bộ cân bằng tải dạng reverse proxy, địa chỉ IP nguồn gửi tới máy chủ ứng dụng nội bị thay thế bằng địa chỉ IP của bộ cân bằng tải. Nhằm bảo toàn thông tin gốc của máy khách phục vụ việc xác thực, ghi nhật ký và phân tích an ninh, tiêu chuẩn RFC 7239 do Petersson và Nilsson công bố năm 2014 đã chuẩn hoá trường tiêu đề Forwarded trong giao thức HTTP.

Tiêu đề Forwarded gom nhóm các thông tin phân mảnh từ các tiêu đề phi chính thức trước đây (như X-Forwarded-ForX-Forwarded-Proto) thành một cú pháp thống nhất:

Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43

Việc áp dụng tiêu chuẩn này giúp các máy chủ dịch vụ nhận biết chính xác nguồn gốc máy khách và giao thức kết nối gốc mà không gặp xung đột cú pháp khi đi qua nhiều lớp trung gian.

Ứng dụng thực tiễn và tiêu chuẩn tại Việt Nam

Tại Việt Nam, kỹ thuật cân bằng tải là thành phần bắt buộc trong kiến trúc hạ tầng của các cổng thông tin chính phủ điện tử, hệ thống ngân hàng trực tuyến và nền tảng thương mại điện tử quy mô lớn. Tiêu chuẩn quốc gia TCVN 11930:2017 do Bộ Khoa học và Công nghệ công bố năm 2017 về yêu cầu cơ bản bảo đảm an toàn hệ thống thông tin theo cấp độ đã quy định rõ các tiêu chí kỹ thuật về tính sẵn sàng cao và dự phòng đường truyền cho hệ thống thông tin cấp độ 3 trở lên.

Để tuân thủ các quy định an toàn hệ thống thông tin theo cấp độ, các cơ quan và doanh nghiệp triển khai cụm cân bằng tải dự phòng đôi (active-passive hoặc active-active) kết hợp các giao thức dự phòng bộ định tuyến ảo (VRRP) nhằm loại bỏ hoàn toàn điểm lỗi đơn lẻ (single point of failure) ở cả tầng mạng biên lẫn tầng máy chủ ứng dụng.

Hạn chế và thách thức khi triển khai

Mặc dù mang lại nhiều lợi ích vượt trội, việc triển khai hệ thống cân bằng tải cũng đặt ra các thách thức kỹ thuật cần xem xét:

  • Nguy cơ trở thành điểm nghẽn đơn lẻ: Nếu bản thân bộ cân bằng tải không được thiết kế kiến trúc dự phòng cụm hoặc phân tán qua DNS, sự cố tại bộ điều phối sẽ làm tê liệt toàn bộ dịch vụ phía sau.
  • Độ phức tạp trong duy trì trạng thái: Việc sử dụng phiên dính (sticky sessions) có thể làm suy giảm hiệu quả phân bổ tải nếu một nhóm người dùng có tần suất hoạt động cao bị gom vào cùng một máy chủ, gây mất cân bằng cục bộ. Xu hướng kiến trúc hiện đại thường khuyến nghị tách trạng thái ứng dụng ra một kho lưu trữ tập trung riêng biệt để giữ cho các máy chủ ứng dụng hoàn toàn phi trạng thái.
  • Tăng độ trễ mạng và chi phí tính toán: Việc giải mã SSL/TLS và kiểm tra gói tin sâu ở tầng ứng dụng làm tăng thời gian xử lý trên mỗi yêu cầu, đòi hỏi phần cứng chuyên dụng hoặc cấu hình tài nguyên tương xứng.

Câu hỏi thường gặp

Cân bằng tải tầng 4 và tầng 7 khác nhau như thế nào?

Cân bằng tải tầng 4 điều phối lưu lượng dựa trên địa chỉ mạng và cổng kết nối mà không đọc nội dung gói tin, mang lại thông lượng cao và độ trễ rất thấp. Ngược lại, cân bằng tải tầng 7 phân tích toàn diện nội dung ứng dụng như tiêu đề HTTP, cookie và đường dẫn URL, cho phép định tuyến linh hoạt nhưng tiêu tốn nhiều tài nguyên xử lý hơn.

Thuật toán băm nhất quán giải quyết vấn đề gì trong phân phối tải?

Thuật toán băm nhất quán ánh xạ máy chủ và dữ liệu lên một vòng băm cố định, giúp giảm thiểu số lượng khoá cần chuyển dịch khi thêm hoặc bớt máy chủ. Nhờ đó, hệ thống ngăn chặn tình trạng vỡ bộ nhớ đệm hàng loạt và duy trì sự ổn định của cụm phân tán.

Nguyên lý sức mạnh của hai lựa chọn hoạt động ra sao?

Thay vì truy vấn tải của toàn bộ máy chủ trong hệ thống, nguyên lý này chỉ chọn ngẫu nhiên hai máy chủ và gán công việc cho máy chủ có hàng đợi ngắn hơn. Cơ chế đơn giản này giúp giảm chiều dài hàng đợi tối đa theo hàm mũ mà không cần duy trì bộ điều phối trạng thái tập trung phức tạp.

Tại sao cần tiêu chuẩn Forwarded trong RFC 7239 khi dùng cân bằng tải?

Khi yêu cầu đi qua bộ cân bằng tải, địa chỉ IP nguồn của máy khách bị thay thế bằng địa chỉ của bộ điều phối. Tiêu chuẩn RFC 7239 chuẩn hoá tiêu đề Forwarded để lưu giữ địa chỉ IP và giao thức ban đầu của máy khách phục vụ việc xác thực và ghi nhật ký an ninh.

Tài liệu tham khảo

  1. Cardellini, V., Colajanni, M., & Yu, P. S. (1999). Dynamic load balancing on Web-server systems. IEEE Internet Computing, 3(3), 28–39. DOI: 10.1109/4236.769420
  2. Karger, D., Lehman, E., Leighton, T., Panigrahy, R., Levine, M., & Lewin, D. (1997). Consistent hashing and random trees: Distributed caching protocols for relieving hot spots on the World Wide Web. Proceedings of the twenty-ninth annual ACM symposium on Theory of computing (STOC '97), 654–663. DOI: 10.1145/258533.258660
  3. Mitzenmacher, M. (2001). The Power of Two Choices in Randomized Load Balancing. IEEE Transactions on Parallel and Distributed Systems, 12(10), 1094–1104. DOI: 10.1109/71.963420
  4. Elmagzoub, M. A., Syed, A. M., Shaikh, A., Islam, N., Alghamdi, A., & Rizwan, A. (2021). A Survey of Swarm Intelligence Based Load Balancing Techniques in Cloud Computing Environment. Electronics, 10(21), 2718. DOI: 10.3390/electronics10212718
  5. Petersson, A., & Nilsson, M. (2014). Forwarded HTTP Extension. RFC 7239. DOI: 10.17487/rfc7239