CẬP NHẬT 2009-05-21Kiến trúc đề nghị cho cân bằng tải ASP.NET trang web
Tôi đã thử nghiệm phương pháp # 2 của việc sử dụng một mạng chia sẻ duy nhất. Nó được dẫn đến một số vấn đề với Windows Server 2003 dưới tải:
http://support.microsoft.com/kb/810886
cuối cập nhật
tôi đã nhận được một đề nghị cho một trang web ASP.NET mà làm việc như sau:
Phần cứng cân bằng tải -> 4 máy chủ web IIS6 -> SQL Server DB với cụm chuyển đổi dự phòng
Đây là vấn đề ...
Chúng tôi đang chọn nơi lưu trữ tệp web (aspx, html, css, hình ảnh). Hai tùy chọn đã được đề xuất:
1) Tạo các bản sao giống hệt nhau của các tệp web trên mỗi máy chủ IIS.
2) Đặt một bản sao của các tệp web trên một mạng chia sẻ có thể truy cập bởi 4 máy chủ web. Các webroots trên 4 máy chủ IIS sẽ được ánh xạ tới một mạng chia sẻ.
Giải pháp nào tốt hơn? Tùy chọn 2 rõ ràng là đơn giản hơn cho việc triển khai vì nó yêu cầu sao chép các tập tin vào chỉ một vị trí duy nhất. Tuy nhiên, tôi tự hỏi liệu có vấn đề về khả năng mở rộng hay không vì bốn máy chủ web đều truy cập một tập hợp các tệp. IIS sẽ lưu các tệp này cục bộ? Nó sẽ nhấn chia sẻ mạng trên mọi yêu cầu của khách hàng? Ngoài ra, sẽ truy cập vào một mạng chia sẻ luôn luôn chậm hơn so với nhận được một tập tin trên một ổ đĩa cứng địa phương? Liệu tải trên mạng chia sẻ trở nên tồi tệ hơn đáng kể nếu nhiều máy chủ IIS được thêm vào?
Để cung cấp cho phối cảnh, đây là trang web hiện nhận được ~ 20 triệu lần truy cập mỗi tháng. Ở đỉnh cao gần đây, nó đã nhận được khoảng 200 lượt truy cập mỗi giây.
Vui lòng cho tôi biết nếu bạn có trải nghiệm cụ thể với thiết lập như vậy. Cảm ơn các đầu vào.
CẬP NHẬT 2009-03-05
Để làm rõ tình hình của tôi - những "triển khai" trong hệ thống này thì ngày càng thường xuyên hơn so với một ứng dụng web điển hình. Trang web là giao diện người dùng cho CMS trở lại văn phòng. Mỗi lần nội dung được xuất bản trong CMS, các trang mới (aspx, html, v.v.) được tự động đẩy lên trang web trực tiếp. Các triển khai về cơ bản là "theo yêu cầu". Về mặt lý thuyết, sự thúc đẩy này có thể xảy ra vài lần trong vòng một phút hoặc hơn. Vì vậy, tôi không chắc chắn nó sẽ là thực tế để triển khai một máy chủ web tại thời điểm. Suy nghĩ?
+1 chúng tôi làm điều tương tự - lấy một máy chủ "ngoài vòng xoay", triển khai, khởi động, quay lại xoay vòng. –
+1 cách duy nhất để làm điều đó. Chúng tôi gọi nó là "trong hỗn hợp" và "ra khỏi hỗn hợp" mặc dù. – DancesWithBamboo
+1 đây là quy trình đã thử. Đã thêm câu trả lời về cách xử lý tỷ lệ cập nhật cao. – eglasius