2013-01-29 1 views
4

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

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

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

Например: 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?

ответ