Chúng tôi đã chiến đấu với HAProxy trong vài ngày nay tại Amazon EC2; kinh nghiệm cho đến nay là tuyệt vời, nhưng chúng tôi đang bị mắc kẹt khi ép thêm hiệu suất ra khỏi cân bằng tải phần mềm. Chúng tôi không chính xác là mạng whizzes Linux (chúng tôi là một cửa hàng .NET, thông thường), nhưng chúng tôi đã cho đến nay tổ chức riêng của chúng tôi, cố gắng thiết lập đúng ulimits, kiểm tra thông điệp hạt nhân và tcpdumps cho bất kỳ bất thường. Cho đến nay, chúng tôi đã đạt đến một cao nguyên khoảng 1.700 yêu cầu/giây, tại thời điểm đó khách hàng hết thời gian chờ (chúng tôi đã sử dụng và tinh chỉnh httperf cho mục đích này). Một đồng nghiệp và tôi đang nghe podcast Stack Overflow gần đây nhất, trong đó những người sáng lập Reddit lưu ý rằng toàn bộ trang web của họ chạy ra khỏi một nút HAProxy, và cho đến nay nó vẫn chưa trở thành một nút cổ chai. Ack! Hoặc bằng cách nào đó không thấy rằng nhiều yêu cầu đồng thời, chúng tôi đang làm điều gì đó khủng khiếp sai, hoặc bản chất chung của EC2 đang hạn chế ngăn xếp mạng của cá thể Ec2 (chúng tôi đang sử dụng một loại cá thể lớn). Xem xét thực tế là cả hai nhà sáng lập Joel và Reddit đều đồng ý rằng mạng có thể sẽ là yếu tố hạn chế, có thể đó là giới hạn mà chúng ta đang thấy không?Cân bằng tải trong Amazon EC2?
Bất kỳ suy nghĩ nào được đánh giá cao!
Chỉnh sửa Có vẻ như vấn đề thực tế không thực tế, với nút cân bằng tải! Thủ phạm thực sự là các nút chạy httperf, trong trường hợp này. Như httperf xây dựng và rơi xuống một ổ cắm cho mỗi yêu cầu, nó dành một số lượng tốt thời gian CPU trong hạt nhân. Khi chúng tôi tăng tốc độ yêu cầu cao hơn, TCP FIN TTL (là 60 giây theo mặc định) đã giữ khoảng cách quá lâu và mặc định của ip_local_port_range quá thấp cho kịch bản sử dụng này. Về cơ bản, sau vài phút nút khách hàng (httperf) liên tục tạo và phá hủy các ổ cắm mới, số cổng không sử dụng đã hết, và các yêu cầu 'bị lỗi' tiếp theo ở giai đoạn này, cho số yêu cầu/giây thấp và số lượng lớn lỗi.
Chúng tôi cũng đã xem nginx, nhưng chúng tôi đã làm việc với RighScale, và họ đã có kịch bản thả xuống cho HAProxy. Oh, và chúng tôi đã có một thời hạn quá chặt chẽ [tất nhiên] để chuyển đổi các thành phần trừ khi nó chứng minh hoàn toàn cần thiết. Một cách thương xót, trên AWS cho phép chúng tôi thử nghiệm một thiết lập khác bằng nginx song song (nếu được bảo đảm), và thực hiện chuyển đổi qua đêm sau này.
This page mô tả từng biến số sysctl khá tốt (ip_local_port_range và tcp_fin_timeout được điều chỉnh, trong trường hợp này).
Marc, bạn nên viết kinh nghiệm của mình bằng cách định cấu hình nội dung này và đăng chúng ở đâu đó (công ty của bạn có blog không?). Âm thanh như nó có thể hữu ích cho rất nhiều người. Đã bỏ phiếu cho câu hỏi của bạn. – SquareCog
Liên kết của bạn bị hỏng. – Ztyx
@Ztyx cảm ơn! Chỉ cần cập nhật nó. Tôi đã tìm hiểu về một nguồn mới hơn, cập nhật hơn, có vẻ như trang web gốc vẫn có PageRank khá cao và nội dung vẫn khá phong nha, vì vậy tôi chỉ chỉnh sửa nó để phản ánh URL mới. –