Як визначити причину 100% використання процесора в службі додатків Azure?


12

У плані обслуговування Azure App п'ять додатків, всі різні копії одного і того ж додатка для різних клієнтів. Це програма ASP.NET MVC із базою даних SQL.

Сьогодні вранці я прокинувся на повільних та невідповідальних сайтах, що іноді призводить до помилки 503. Перевіривши показники процесора / пам'яті для плану обслуговування додатків, я виявив, що CPU прив'язується до 100%:

ЦП на 100%

І графік часу CPU для окремих сайтів показує, що вони працюють одночасно, хоча й гірше, ніж інші:

Використання ЦП окремих сайтів

Я спробував вирішити проблему, зробивши розширений перезапуск програми, але лезо не завантажилось - я припускаю, тому що він намагався отримати інформацію від сервера, який не міг відповісти.

Врешті-решт я спробував зупинити кожен із сайтів один за одним, який повернув центральний процесор до нуля, потім запустив їх назад, знову, що, здавалося, вирішило проблему, але зараз деякі з них починають підніматися назад.

Я відчув подібну проблему пару тижнів тому, і припустив, що я зростаю занадто великим для мого плану додатків, настільки оновленого з S1 до S2, і це було б добре до сьогодні.

Я з тотальною втратою щодо того, як зрозуміти, в чому причина голодної поведінки цього процесора. Чи може хтось вказати мені в правильному напрямку, як я можу почати діагностувати це?


це, мабуть, трапляється на планах обслуговування додатків Azure трохи, ви зв’язалися з MS? - якщо ви не внесли якісь зміни, я б повідомив їм, що є проблема з платформою.
Sum1sAdmin

Я не маю з ними плану підтримки, тому не думайте, що існує жодного способу повідомити їх. Це хвилює себе, якщо я просто збираюся випадково зіткнутися зі 100% проблемами процесора - можливо, доведеться шукати іншого постачальника. Чи може допомогти вам два екземпляри?
маленькахарва

Я б використовував відкриті форуми на кшталт technet. Якщо це критично, ви можете його масштабувати, але я б не платив більше за те, що їм потрібно виправити, якщо це так.
Sum1sAdmin

Відповіді:


6

У нас виникла ця проблема кілька разів, і кожного разу виявлялося, що вона втекла від GC (вивезення сміття). Це важко довести та діагностувати, але те, що я в кінцевому підсумку роблю, - це використовувати сайт kudo (scm), клацнувши інструменти => підтримка (що переносить вас на сайт підтримки програм.

Звідси ви вибираєте свій каталог (у випадку, якщо у вас є декілька) та сайт, натискаєте на Аналіз => Метрики, потім кнопку Діагностувати ( ПРИМІТКА це вже змінилося, щоб ці кроки могли змінитися в будь-який час), потім поверніться до Analyze => Dianotics, ви Згодом отримаю звіт пам'яті => "Аналіз стану". Це повинен бути mht-файл (який ви можете відкрити в ненависному браузері IE або Edge), після чого шукайте ключ "gc".

ви знайдете цікаві кадри стека викликів із посиланнями на такі речі, як "GCFrame" або ще цікавіші дзвінки на "System.Threading.WaitHandle.WaitMultiple", якщо у вас занадто багато таких, у вас можуть виникнути проблеми зі збиранням сміття .

Як вирішити це ... це тема, висвітлена в багатьох інших темах, тому що це як запитання "як я живу у світі, коли IE 6 все ще використовується?" ...


1
Це перемістилося. Тепер він розміщений у службі додатків (не на сайті scm, на звичайному веб-сайті Azure) за адресою "Діагностувати та вирішувати проблеми-> Інструменти діагностики-> Збирати дамп пам'яті"
Josh Noe

3

Вашою найкращою ставкою буде встановлення New Relic або Insights Insights для цього конкретного додатка. Його можна легко встановити через Службу додатків -> Інструменти -> Моніторинг продуктивності. Це дасть вам детальний огляд того, що відбувається як на сервері, так і на стороні клієнта.

Моніторинг додатків

Стаття: Відстежуйте ефективність веб-додатків Azure

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.