Tôi hiện đang tải thử nghiệm một ứng dụng ASP.NET. Tôi đang sạc với 500 người dùng trên ứng dụng, và trong khi đang chạy, tôi đang kiểm tra, trong bảng điều khiển perfmon.exe, bộ đếm "Phiên hoạt động" và "Phiên đã hết giờ" trên máy chủ web.Số lượt truy cập ASP.NET "Sessions Timed Out" (perfmon.exe)
Trong web.config, thời gian chờ của phiên là 3 phút (cho mục đích của bài kiểm tra).
Vì vậy, khi thử nghiệm đi, bộ đếm "Phiên hoạt động" vẫn ở trên khoảng 900 phiên hoạt động mà tôi giả định là bình thường vì 500 người dùng hoạt động và khoảng 400 người khác có phiên chưa hết giờ.
Nhưng khi tôi nhìn vào bộ đếm "Thời gian chờ của phiên", nó tăng lên một cách đáng kể. Nó chỉ giảm dần khi kiểm tra tải kết thúc.
Bộ đếm này chính xác là gì? Như tôi đã hiểu, đó là các phiên không được sử dụng mà chưa được dọn sạch (bởi bộ thu gom rác?) Và vẫn đang sử dụng bộ nhớ.
Vì ứng dụng của chúng tôi đang sử dụng lớn toàn bộ bộ nhớ, tôi đang cố gắng tìm chính xác trong đó là bộ nhớ đó.
Tôi thực tế, những gì tôi thực sự cần biết, là nếu các phiên hết thời gian này vẫn đang sử dụng bộ nhớ. Cảm ơn bạn đã liên kết, tôi sẽ kiểm tra nó ngay hôm nay. – Johnny5
Vâng, sau khi kiểm tra một số chi tiết, bộ đếm thời gian này không giảm xuống cho đến khi hồ bơi ứng dụng được khởi động lại (như iisreset) [br] Nhưng vẫn có vẻ như phiên hết hạn không được dọn sạch (bộ nhớ không được giải phóng) cho đến khi loadtest của tôi kết thúc. – Johnny5
Bạn có nội dung RCW nào đang chạy trong phiên không? ví dụ: Bạn có bất kỳ đối tượng COM cũ nào đang được truy cập và lưu trữ trong phiên không? Tôi đã thấy chúng khiến tải ở mức cao. Nó cũng cảm thấy như bạn có thể muốn nhìn vào quầy khác để tìm ra những điều cụ thể đó là ăn bộ nhớ. Tôi đã sử dụng các chương mà tôi đã đề cập ở trên để cung cấp cho tôi gợi ý về nơi nó đang được tổ chức. Cụ thể, các quầy GC có sự trợ giúp tuyệt vời (gen0, gen1 và gen2). – gbvb