w3wp.exe
đang hiển thị mức sử dụng CPU 99%. Các cách tốt nhất để điều tra nguyên nhân của việc sử dụng CPU cao này là gì?
w3wp.exe
đang hiển thị mức sử dụng CPU 99%. Các cách tốt nhất để điều tra nguyên nhân của việc sử dụng CPU cao này là gì?
Câu trả lời:
Đính kèm WinDbg + sos và chạy !runaway
. Điều đó sẽ cho bạn thấy luồng nào đang chiếm nhiều thời gian CPU nhất. Làm một !clrstack
chủ đề để tìm hiểu những gì nó đang làm.
Một gợi ý khác về các công cụ là DebugDiag, xem thêm tại đây
[CẬP NHẬT] Sử dụng ProcDump , xem thêm tại Sử dụng ProcDump.exe để theo dõi w3wp.exe cho CPU tăng đột biến .
w3wp.exe
là quy trình công nhân ASP.NET, vì vậy nếu nó sử dụng tỷ lệ cao CPU của máy chủ thì chính ứng dụng ASP.NET đang gây ra sự cố. Tuy nhiên, điều này không nhất thiết chỉ ra rằng có vấn đề với ứng dụng ASP.NET. Nó có thể đang phục vụ quá nhiều yêu cầu với nguồn lực hạn chế. Biện pháp thực sự duy nhất là kiểm tra mức sử dụng CPU so với lượng lưu lượng được xử lý bởi ứng dụng.
Nếu bạn nghi ngờ rằng một yêu cầu nào đó mất quá nhiều thời gian, bạn có thể sử dụng tiện ích dòng lệnh Logparser để phân tích các logfiles của bạn và tìm trang nào có thời gian thực hiện dài.
c:\>logparser "select top 10 cs-uri-stem, time-taken from INSERT_YOUR_IIS_LOG_FILE_NAME.log group by cs-uri-stem order by time-taken desc" -q:on
Bạn cũng có thể sử dụng một công cụ để hiển thị những trang nào hiện đang thực thi, như IISPeek (không miễn phí).
Nếu bạn muốn đi sâu hơn, hãy cố gắng hiểu hwo để sử dụng WinDbg. Đây là một hướng dẫn tốt: Windows Debuggers: Phần 1: Hướng dẫn WinDbg
Chúng tôi có cùng một vấn đề Greg ghi chú ở trên. Chúng ta chỉ đang giết những quá trình đó. Không quan sát điều này trên IIS6 / windows server 2003, chỉ trên IIS7 / windows server 2008.