Tôi có một ứng dụng trang web chạy trong nhóm ứng dụng riêng của nó trên IIS 7.0. Ứng dụng này là một trang web ASP.NET MVC 3.Sử dụng bộ nhớ cao với hồ bơi ứng dụng w3wp IIS 7
Tôi đã nhận thấy việc sử dụng bộ nhớ cho các ứng dụng này tương ứng với dịch vụ nhân viên IIS w3wp khá cao (800 MB, với một số biến động).
Tôi cố gắng để chẩn đoán vấn đề và đã thử như sau:
tôi đã vô hiệu hóa bộ nhớ đệm trang đầu ra cho các trang web ở cấp IIS và sau đó tái chế hồ bơi ứng dụng. Điều này làm cho quá trình w3wp khởi động lại. Việc sử dụng bộ nhớ cho quá trình này sau đó từ từ leo lên đến khoảng 800 MB, phải mất khoảng 30 giây để làm như vậy. Không có yêu cầu trang nào được xử lý tại thời điểm này. Khi tôi khởi động lại trang web từ IIS, kích thước bộ nhớ của quá trình không thay đổi.
Tôi đã thử chạy bản sao gỡ lỗi của ứng dụng từ VS 2010, không có vấn đề với việc sử dụng bộ nhớ.
Một số ý tưởng tôi có/câu hỏi là:
là vấn đề này liên quan đến mã trang web? - Cho rằng các tên lửa bộ nhớ trước khi bất kỳ yêu cầu trang đã được gửi/xử lý, tôi sẽ giả định đây không phải là một vấn đề mã?
Ứng dụng được xây dựng trong MVC không xử lý bộ nhớ đệm được ghi vào đó.
Trang web sử dụng hiển thị dữ liệu theo thời gian thực, nó sử dụng định kỳ yêu cầu ajax và thường được để 'mở' trong một thời gian dài.
Tại sao tên lửa sử dụng bộ nhớ tăng lên sau khi ứng dụng được tái chế và không có yêu cầu nào của người dùng được gửi? Có phải vì nó đang tải thông tin bộ nhớ cache cũ vào bộ nhớ của nó từ đĩa?
Ứng dụng này không sụp đổ, tôi chỉ quan tâm đến việc sử dụng bộ nhớ, nó không phải là lớn của một trang web ...
Bất kỳ ý tưởng/giúp với nhận để dưới cùng của vấn đề này sẽ được đánh giá .
BTW - Bạn sẽ ở mức ổn định 40% vì theo mặc định, processModel trong IIS bị giới hạn chỉ sử dụng 60% bộ nhớ khả dụng. Bạn có thể thay đổi điều này thông qua cài đặt processModel memoryLimit. – ProVega
@ProVega Trên thực tế bên cạnh IIS, có máy chủ sql ms và chương trình sao lưu MS. Các chương trình sao lưu ms có thể ăn tất cả bộ nhớ miễn phí làm cho hệ thống chậm. Sau đó, máy chủ MS SQL cũng có thể ăn nhiều bộ nhớ cho bộ nhớ cache, vì vậy tôi đã thiết lập giới hạn bộ nhớ tối đa. Vì vậy, tôi kết thúc để có một số bộ nhớ miễn phí bởi vì tôi đã kiểm tra này. – Aristos
cũng trong cửa sổ bật lên cài đặt trước của ứng dụng, cài đặt Bật ứng dụng 32-bit thành true cũng làm giảm mức sử dụng bộ nhớ. xem bài đăng này để biết thông tin http://www.sitefinity.com/developer-network/forums/bugs-issues-/app-pool-memory-drastically-different-from-32-64-bit –