Làm cách nào để xác định nguyên nhân sử dụng CPU 100% trong Dịch vụ ứng dụng Azure?


12

Tôi có năm ứng dụng trong Gói dịch vụ ứng dụng Azure, tất cả các bản sao khác nhau của cùng một ứng dụng cho các khách hàng khác nhau. Đây là một ứng dụng ASP.NET MVC với cơ sở dữ liệu SQL.

Sáng nay tôi thức dậy với các trang web chậm và không phản hồi, đôi khi dẫn đến lỗi 503. Khi kiểm tra số liệu CPU / Bộ nhớ cho Gói dịch vụ ứng dụng, tôi phát hiện ra CPU được chốt ở mức 100%:

CPU ở mức 100%

Và biểu đồ về thời gian CPU của các trang web riêng lẻ cho thấy tất cả chúng đều tắt cùng một lúc, mặc dù một số tồi tệ hơn các trang khác:

Sử dụng CPU trang web cá nhân

Tôi đã cố gắng giải quyết vấn đề bằng cách thực hiện Khởi động lại ứng dụng nâng cao, nhưng lưỡi dao sẽ không tải - tôi cho rằng vì nó đang cố lấy thông tin từ máy chủ không thể phản hồi.

Cuối cùng, tôi đã cố gắng dừng từng trang một, điều này khiến CPU trở về 0, sau đó khởi động lại chúng, điều này dường như đã giải quyết được vấn đề, nhưng bây giờ một vài trong số chúng bắt đầu leo ​​lên trở lại.

Tôi đã gặp một vấn đề tương tự một vài tuần trước và cho rằng tôi đã phát triển quá lớn cho Kế hoạch ứng dụng của mình, vì vậy đã nâng cấp từ S1 lên S2 và nó vẫn ổn cho đến ngày hôm nay.

Tôi hoàn toàn mất khả năng tìm hiểu nguyên nhân của hành vi đói CPU này là gì. Bất cứ ai có thể chỉ cho tôi đi đúng hướng làm thế nào tôi có thể bắt đầu chẩn đoán điều này?


điều này dường như xảy ra trên các gói dịch vụ ứng dụng Azure một chút, bạn đã liên hệ với MS chưa? - trừ khi bạn đã thực hiện bất kỳ thay đổi nào, tôi sẽ cho họ biết có vấn đề với nền tảng.
Sum1sAdmin

Tôi không có kế hoạch hỗ trợ với họ, vì vậy đừng nghĩ có cách nào để cho họ biết. Đó là một chút lo lắng nếu tôi chỉ gặp ngẫu nhiên các sự cố CPU 100% - có thể phải tìm nhà cung cấp khác. Bạn có thể giúp đỡ hai trường hợp không?
littlecharva

Tôi sẽ sử dụng các diễn đàn mở như Technet - Nếu nó quan trọng bạn có thể mở rộng nó nhưng tôi sẽ không trả nhiều hơn cho thứ gì đó mà họ cần sửa, nếu đó là trường hợp.
Sum1sAdmin

Câu trả lời:


6

Chúng tôi đã có vấn đề này một vài lần và mỗi lần nó lại biến thành GC (bộ sưu tập rác). Thật khó để chứng minh và chẩn đoán, nhưng điều cuối cùng tôi làm là sử dụng trang web kudo (scm), nhấp vào công cụ => hỗ trợ (đưa bạn đến trang web hỗ trợ cho các ứng dụng.

Từ đây, bạn chọn thư mục của mình (bao gồm một số) và trang web, nhấp vào Phân tích => Số liệu sau đó nút Chẩn đoán ( LƯU Ý điều này đã thay đổi để các bước này có thể thay đổi bất cứ lúc nào), sau đó quay lại Phân tích => Dianotics, bạn Cuối cùng sẽ nhận được báo cáo Bộ nhớ kết xuất => "Trạng thái phân tích". Đây phải là một tệp mht (mà bạn có thể mở trong trình duyệt IE hoặc Edge đáng ghét), sau đó tìm kiếm khóa "gc".

bạn sẽ tìm thấy một số khung ngăn xếp cuộc gọi thú vị với các tham chiếu đến những thứ như "GCFrame" hoặc các cuộc gọi thú vị hơn đến "System.Threading.WaitHandle.WaitMultipl" nếu bạn nhận được quá nhiều trong số này, hệ thống của bạn có thể gặp sự cố với bộ sưu tập rác .

Làm thế nào để giải quyết ... đó là một chủ đề được đề cập trong nhiều chủ đề khác bởi vì nó giống như hỏi "làm thế nào để tôi sống trong một thế giới với IE 6 vẫn được sử dụng?" ...


1
Điều này đã di chuyển. Hiện tại, nó nằm trong Dịch vụ ứng dụng (không phải trang scm, trang Azure thông thường) tại "Chẩn đoán và giải quyết vấn đề-> Công cụ chẩn đoán-> Thu thập kết xuất bộ nhớ"
Josh Noe

3

Đặt cược tốt nhất của bạn sẽ là cài đặt Relic mới hoặc Insights ứng dụng cho ứng dụng cụ thể này. Nó có thể dễ dàng cài đặt thông qua Dịch vụ ứng dụng -> Công cụ -> Giám sát hiệu suất. Điều này sẽ cung cấp cho bạn một cái nhìn chi tiết về những gì đang xảy ra ở cả phía máy chủ và máy khách.

Giám sát ứng dụng

Bài viết: Theo dõi hiệu suất ứng dụng web Azure

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.