Автоматически генерировать файл дампа процесса w3wp.exe при достижении порога ЦП даже при изменении PID

Я пытаюсь устранить проблему с одним из наших веб-сайтов, которая вызывает скачкообразный скачок ЦП. Сайт находится на ферме веб-серверов, и это происходит с перерывами на всех серверах в разное время. Процесс, вызывающий всплеск, - w3wp.exe. Я проверил все очевидные вещи и теперь хочу проанализировать несколько наборов файлов дампа для w3wp.exe, который вызывает всплеск.

Я пытаюсь автоматически сгенерировать файл дампа процесса w3wp.exe, когда он достигает указанного порога ЦП в течение указанного времени.

Я могу использовать ProcDump.exe, чтобы сделать это, и он работает, если он запускается до изменения PID (ID процесса).

Например:procdump -ma -c 80 -s 10 -n 2 5844(где 5844 - PID)

  • -ma Написать файл дампа со всей памятью процесса. Формат дампа по умолчанию включает информацию о потоке и дескрипторе.
  • -c порог ЦП, при котором создается дамп процесса.
  • -s Пределы последовательных секунд процессора должны быть достигнуты перед записью дампа (по умолчанию 10).
  • -n Количество дампов для записи перед выходом.

Приведенная выше команда будет отслеживать w3wp.exe до тех пор, пока центральный процессор не скачет на 80% в течение 10 секунд, и это займет полный дамп по крайней мере в течение двух итераций.

Эта проблема:

У меня запущено несколько экземпляров w3wp.exe, поэтому я не могу использовать имя процесса, мне нужно указать PID. PID меняется каждый раз при повторном использовании пула приложений. Это приводит к изменению PID, прежде чем я смогу захватить несколько файлов дампа. Затем мне нужно снова запустить procdump на каждом веб-сервере.

Мой вопрос:

Как я могу продолжать автоматически генерировать файлы дампа даже после изменения PID?

1 ответ

ИСПОЛЬЗУЙТЕ DebugDiagnostic 2.0 от Microsfot: https://www.microsoft.com/en-us/download/details.aspx?id=49924

Он обрабатывает несколько процессов w3wp.exe. Если вам нужно общее решение, вам нужно будет написать сценарий, например https://gallery.technet.microsoft.com/scriptcenter/Getting-SysInternals-027bef71

Другие вопросы по тегам