Tôi đang gặp vấn đề về hiệu suất trong một trang web chúng tôi đã tạo và tôi không chắc chắn chính xác làm thế nào để bắt đầu chẩn đoán nó.
Mô tả ngắn gọn là: Chúng tôi có một trang web rất nhỏ ( http://apserablog.com ) với lưu lượng truy cập rất ít, trong một máy chủ chuyên dụng xảo quyệt, CPU luôn rất cao, đôi khi nó ở mức 100% trong vài phút và w3wp.exe đang chiếm phần lớn trong số đó. Một kịch bản điển hình là w3wp.exe chiếm 60% và SQL Server chiếm khoảng 30%. DB của chúng tôi cũng khá nhỏ.
Mô tả dài và chi tiết hơn:
Trang web được lưu trữ trong một máy chủ rất nhảm nhí của Cari.Net. Ngay từ đầu, chúng tôi đã có cảm giác rằng máy chủ không hoạt động chính xác, giống như một số thứ sẽ mất quá nhiều thời gian, vì vậy đây có thể là một vấn đề cấu hình ngay từ đầu. Cũng có thể là chúng tôi đang có một máy chủ ảo trong khi chúng tôi phải có một máy chủ chuyên dụng, mặc dù chúng tôi không có bằng chứng nào cho thấy điều này, ngoại trừ thực tế là máy chủ có xu hướng khá chậm.
Máy chủ là Windows 2008 Standard 64-bit, với SQL 2008 Express
Phần cứng là Celeron 2.80 GHz, RAM 1Gb
Trang web được phát triển trong ASP.Net MVC, sử dụng Entity Framework để truy cập dữ liệu.
Bây giờ, đây là phần cứng khá nhảm nhí, nhưng tôi đã có các máy chủ khác với những kẻ này, với CTNH tương đương (hoặc tệ hơn), và hiệu suất tốt hơn nhiều so với máy chủ này. Điều đó nói rằng, các máy chủ khác có W2003 và SQL2005 và tôi đang sử dụng ASP.Net "WebForms" 2.0, không MVC, không LINQ, không EF; Vì vậy, tôi không chắc chắn liệu đến năm 2008 / những thứ khác có nghĩa là một hình phạt hiệu suất lớn được mong đợi hay không.
Tôi đang phục vụ các tệp MP3 (5-20 Mb) thường xuyên, đây là một tải hơi bất thường, có lẽ điều đó gây ra một số vấn đề?
Điều đó có khiến w3wp sử dụng nhiều CPU không?Sử dụng đĩa có vẻ rất thấp. Bộ nhớ thường khoảng 90%, nhưng việc sử dụng đĩa dường như cho thấy nó không phân trang nhiều.
Tôi nhận được rất nhiều email mỗi ngày về thời gian chờ SQL, cho các truy vấn mất hơn 30 giây, mặc dù tất cả các truy vấn của chúng tôi khá đơn giản (hoặc nên như vậy, nhưng EF có thể làm hỏng nó).
Đây là màn hình tài nguyên trông giống như một trong những "chạy nước rút" của CPU 100%, trong trường hợp có bất cứ điều gì hữu ích ở đó.
Và một ảnh chụp nhanh của một số quầy hiệu suất:
Bây giờ, điều làm tôi bối rối rất nhiều là việc sử dụng CPU của w3wp chỉ là quá cao. Nó thực sự không nên làm gì nhiều ... Vì vậy, câu hỏi của tôi là ...
- Có cách nào để tìm ra "những gì" nó đang làm không? Thậm chí có thể hồ sơ nó?
- Bất kỳ quầy hiệu suất tôi nên xem xét?
- Đây có phải là dự kiến cho cấu hình phần cứng / phần mềm này?
- Đây có phải là nguyên nhân của một số lỗi cấu hình, bạn sẽ bắt đầu tìm kiếm ở đâu?
Cảm ơn rât nhiều.
Daniel Magliola