2017-02-22 20 views
2

Я подозреваю, что у меня может быть утечка памяти в WebJob, но я не уверен, как окончательно доказать, что я это делаю. Я подозреваю, что могу найти информацию, перейдя в/processExplorer в консоли управления Kudu, запустив профиль и загрузив результаты. Тем не менее, я не совсем уверен, что это маршрут или что я должен делать с файлом, как только я его получу.Как диагностировать утечку памяти в Azure WebJob

Любые предложения будут оценены.

ответ

2

я могу найти информацию, перейдя к/ProcessExplorer в консоли управления Куду, запустить профиль и загрузить результаты

После получения файла .diagsession, вы можете открыть его с Visual Studio. Вы увидите тенденцию использования ЦП, но данные памяти не будут включены в этот файл. Чтобы легко определить, есть ли утечка памяти, шаги ниже приведены для вашей справки.

  1. Обновите Process Explorer на kudu вручную и своевременно (например, один раз за 30 секунд).
  2. После обновления Process Explorer вам необходимо записать частную память и виртуальную память, которые будут использоваться для диагностики утечки памяти. Нажимая кнопку «Свойства» после имени процесса, вы увидите частную память и виртуальную память текущего процесса.
  3. После того, как вы закончили запись достаточного количества данных, вам нужно сравнить скорость роста виртуальной памяти и частной памяти. Если и виртуальная память, и частная память быстро растут, или виртуальная память растет быстрее, чем в частной памяти, это означает, что происходит утечка памяти.

Если вам нужна дополнительная информация об утечке памяти, вы можете загрузить файл дампа памяти с страницы свойств процесса и просмотреть подробную информацию об этом с помощью WinDbg. Вы также можете анализировать файл дампа онлайн, используя Diagnostics, как услугу для веб-сайтов Azure. Для получения дополнительной информации о том, как его использовать. Ссылка ниже для справки.

DaaS – Diagnostics as a Service for Azure Web Sites

+0

Я был в состоянии использовать DaaS, чтобы увидеть, что у меня была куча осиротевших нитей, которые имели ресурсы. Спасибо, что указали DaaS. –

+0

@RobReagan, как вы удостоверились, что Azure разместили осиротевшие потоки? – zgirod

+0

@zgirod, наша проблема заключалась в том, что мы создавали новое подключение к нашему концентратору из WebJob для каждого запроса. При использовании SignalR 2.2.0 это приводило к проблемам с подключением и нитями, которые остались сиротами. Мы изменили свою логику в нашем непрерывном WebJob, так что мы только установили прокси-соединение один раз, а затем повторно использовали это соединение, чтобы поговорить с нашим концентратором. Это определило наши проблемы. –

 Смежные вопросы

  • Нет связанных вопросов^_^