2009-02-25 29 views
6

Tôi đang tìm cách để ứng dụng tự giám sát lượng bộ nhớ đang sử dụng, vì vậy tôi có thể ghi lại nó trong một tệp nhật ký mỗi giờ hoặc lâu hơn và giữ một mắt về việc sử dụng các ứng dụng.Giám sát bộ nhớ ứng dụng ASP.NET từ trong ứng dụng

Tất cả được lưu trữ để chúng tôi có thể thực hiện các thay đổi đối với hệ thống để xem điều gì đang diễn ra để giải pháp sẽ phải nằm trong mã ứng dụng.

Chúng tôi trong tương lai có thể sử dụng thông tin bộ nhớ để ảnh hưởng đến chính sách lưu trong bộ nhớ cache.

Trả lời

5

Hmm, bạn cần thông tin chi tiết như thế nào? Nếu bạn chỉ muốn sử dụng bộ nhớ, bạn có thể yêu cầu GC. Nó biết. ;)

long bytes = GC.GetTotalMemory(false); // use 'false' to not wait for next collect 

Biến 'byte' sẽ chứa số byte hiện được cấp phát trong bộ nhớ được quản lý. Tôi không chắc liệu bộ nhớ được quản lý đòi hỏi toàn bộ quá trình hay chỉ là AppDomain. Bạn sẽ phải kiểm tra điều này bằng cách chạy một số AppDomains trong một quá trình và xem nếu phân bổ bộ nhớ được quản lý được đo qua AppDomains. Nếu không, thì bạn có thể sử dụng điều này để đo tổng mức sử dụng bộ nhớ trong một ứng dụng ASP.NET.

Nếu bạn muốn biết thêm thông tin cụ thể, có API chẩn đoán cho CLR mà bạn có thể giao tiếp. Ngoài ra còn có rất nhiều trình biên tập bộ nhớ, nhưng nếu chúng hoạt động trong một ứng dụng ASP.NET thì tôi không thể nói.

1

Thay vào đó, nếu bạn muốn biết thêm thông tin chi tiết, bạn có thể đọc các bộ đếm hiệu suất bằng cách sử dụng lớp System.Diagnostics.PerformanceCounter. Dưới đây là một số các quầy mà bạn có thể cắm vào:

Yêu cầu Bytes Out Tổng

Yêu cầu Bytes Trong Tổng

Yêu cầu Chờ Thời gian

Các yêu cầu Thi công

Yêu cầu/Sec

Lỗi Tổng số

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