2010-06-18 16 views
5

Có ai có kinh nghiệm hoặc biết các tác dụng phụ tiêu cực khi có số lượng dịch vụ cao như 60k không? Ngoài việc tiêu thụ bộ nhớ của khóa học.Số lượng trường hợp cao của WCF: bất kỳ ai đều biết các phản ứng phụ tiêu cực?

Tôi đang lên kế hoạch tăng ngưỡng cho số lượng bản sao tối đa được phép trong môi trường sản xuất của chúng tôi. Tôi về cơ bản bị bệnh của các sự cố sản xuất nghiêm trọng chỉ vì "cái gì đó" quên đóng một proxy đúng cách.

Tôi có kế hoạch chuyển đến một trường hợp 60 nghìn lần cho phép dịch vụ tồn tại bằng cách sử dụng thời gian chờ phiên mặc định với mức trung bình cuộc gọi cho khách hàng của chúng tôi.

Các thiết lập throttling sẽ là:

  • maxConcurrentCalls = 100
  • maxConcurrentSessions = 60000
  • maxConcurrentInstances = 60000
  • InstanceContextMode = PerSession

Cảm ơn, Alex

Trả lời

3

Các trường hợp đồng thời mặc định là Không giới hạn. 60k sẽ không có sự khác biệt.

Khi bạn không áp dụng throttling dịch vụ của bạn, giá trị mặc định là

•maxConcurrentCalls = 16 
•maxConcurrentSessions = 10 
•maxConcurrentInstances = Unlimited 

Có nhiều cách để áp dụng điều tiết và mở rộng giá trị mặc định nhưng tất cả điều đó phụ thuộc vào InstanceContext của bạn, truy cập đồng thời, và các chế độ phiên ? Dựa trên những người trả lời có cài đặt cấu hình tối ưu tôi có thể đề xuất.

tôi bao gồm một số những điều này trong bài viết của tôi trên ESB qua WCF/Trottling Here

UPDATE:

Cảm ơn phản hồi của bạn. Mỗi phiên là tốt. Có một bài viết hay về việc tối ưu hóa WCFService của bạn Here

Chúng khuyên bạn nên thay đổi cài đặt của mình thành cao hơn 16 * số CPU. Vì bạn đang sử dụng mỗi phiên, Bạn nên đặt ConcurrentCalls của mình thành 1-3% các Trường hợp đồng thời.

Vì vậy, giả sử bạn có 8 lõi trong Máy chủ của bạn. Tôi khuyên bạn nên bắt đầu cài đặt của bạn trên một dịch vụ mỗi phiên như vậy:

<serviceThrottling maxConcurrentCalls="6" 
    maxConcurrentInstances="200" 
    maxConcurrentSessions="200"/> 

Điều này sẽ loại bỏ vấn đề của bạn với khách hàng hiện đang sử dụng mặc định là 10 phiên. Bạn máy chủ sẽ có thể xử lý nhiều hơn nữa, nhưng 60k có lẽ là quá mức cần thiết. Bạn có thể kiểm tra và tăng lên khi cần thiết. Tất cả phụ thuộc vào sức mạnh của hộp và những gì khác bạn đang sử dụng nó cho.

Dựa trên các cài đặt này nếu bạn cần phát triển hơn nữa, bạn có thể theo dõi hiệu suất và xem liệu bạn có thể tăng hiệu suất hay không, bạn có thể dễ dàng mở rộng ra nhiều máy chủ hơn và Cân bằng tải.

Hy vọng điều này sẽ giúp ...mã hóa hạnh phúc

+0

Cảm ơn vì điều đó! Chế độ cá thể của tôi là PerSession và tôi sẽ điều chỉnh tốc độ phiên của mình cho phù hợp để hiểu rõ toàn bộ câu chuyện. – Alex

+0

"nếu bạn cần phát triển hơn nữa" - vâng, tôi cần phải vì một khách hàng không hoạt động sẽ xả 200 phiên trong khoảng 20 giây trong khi SessionIdleManager chỉ hủy bỏ kênh mỗi 10 phút tôi nghĩ. "bạn có thể theo dõi hiệu suất" - đó là cụ thể những gì tôi muốn hỏi nếu có ai quan sát hiệu suất truy cập, v.v. với số lượng bản sao cao. – Alex

+0

Có vẻ như bạn có một số ứng dụng khách cần phải tắt. Nếu họ sẽ khóa 200 phiên, thì họ sẽ khóa bất kỳ số nào bạn tăng lên. Tôi đã thực hiện điều chỉnh hiệu suất trên các dịch vụ trước đây, nhưng không biết môi trường của bạn là gì, tôi không thể cung cấp cho bạn những con số tối ưu. Nếu nó là một máy chủ mạnh mẽ và không có gì khác cần tài nguyên trên nó, sau đó bạn có thể jack nó lên đến tối đa. Xin lỗi tôi đã cố gắng dạy một người đàn ông để câu cá. – CkH

Các vấn đề liên quan