2010-07-28 27 views
8

Tôi có dịch vụ WCF được cài đặt trên IIS7. Tôi nhận thấy rằng cuộc gọi đầu tiên đến dịch vụ của tôi luôn rất chậm. Các cuộc gọi tiếp theo nhanh hơn nhiều & có thể chấp nhận được.Hiệu suất WCF Chậm cho cuộc gọi đầu tiên

Nếu không có cuộc gọi nào được thực hiện cho dịch vụ trong một thời gian, nó sẽ chuyển sang chế độ ngủ. Sau đó, cuộc gọi tiếp theo phải mất một thời gian dài.

Bất kỳ biện pháp khắc phục nào cho vấn đề này?

Trả lời

12

Đó là do quá trình quản lý trên IIS. Khi không có cuộc gọi nào trong một khoảng thời gian nào đó, IIS sẽ giải phóng tài liệu và ngừng quá trình. Đây là lý do tại sao bạn có thể nhận thấy rằng nó là chậm cho yêu cầu đầu tiên và cho các yêu cầu sau một sự chậm trễ lâu dài. Bởi vì trong khi yêu cầu đầu tiên hoặc sau khoảng thời gian dài im lặng, IIS tải mọi thứ từ đầu. JIT complier chạy và vv ..

Cũng lưu ý: Khi bạn đang lưu trữ các dịch vụ WCF trên IIS, các dịch vụ WCF sẽ tận hưởng tất cả các tính năng của ứng dụng ASP.NET. Bạn phải nhận thức được các tính năng này vì chúng có thể gây ra hành vi bất ngờ trong thế giới dịch vụ. Một trong những tính năng chính là tái chế ứng dụng, bao gồm tái chế miền ứng dụng và tái chế quy trình. Thông qua giao diện quản lý IIS, bạn có thể cấu hình các quy tắc khác nhau khi bạn muốn tái chế xảy ra. Bạn có thể đặt một số ngưỡng nhất định trên bộ nhớ, đúng giờ và số lượng yêu cầu đã xử lý. Khi IIS tái chế một quy trình công nhân, tất cả các miền ứng dụng trong quá trình nhân viên sẽ được tái chế cũng như

Nếu bạn cần bắt đầu tự động: Trình quản lý điều khiển dịch vụ Windows cho phép bạn đặt kiểu khởi động thành tự động, để ngay khi Windows khởi động, dịch vụ sẽ được khởi động mà không cần đăng nhập tương tác trên máy. Vì vậy, bạn có thể sử dụng dịch vụ Windows như một máy chủ.

Chi tiết khác bạn có thể đăng ký Hosting and Consuming WCF Services.

+0

cảm ơn Ẩn danh về câu trả lời và liên kết. về tỷ lệ chấp nhận, tôi chưa nhận được bất kỳ giải pháp nào cho câu hỏi trước của tôi đã hỗ trợ tôi để kết quả là tỷ lệ chấp nhận 0% –

+0

@Sharjeel Đồng ý Tôi thực sự nhận thấy rằng :). – Incognito

3

Có một cách tiếp cận khác mà qua đó bạn có thể làm cho nó tốt hơn. Chúng tôi có một số loại quy trình scehduled mà cứ đánh máy chủ của chúng tôi cứ 5 phút một lần với các yêu cầu rất "nhẹ" để giữ cho tất cả các máy chủ "nóng" (bằng cách tải hầu hết các dll yêu cầu vv) để trải nghiệm người dùng tốt hơn nhiều.

Tôi đồng ý nó không phải là một bằng chứng đánh lừa, nhưng vẫn là một cái gì đó bạn có thể xem xét ngoài việc tăng các thiết lập tái chế trong IIS.

+2

+1 Điều hợp lý cần làm. Cũng có thể được sử dụng để kiểm tra sức khỏe thông qua một công cụ như Nagios. –

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