Я пытаюсь устранить проблему с одним из наших сайтов, что заставляет процессор периодически перескакивать. Сайт находится на ферме веб-серверов, и он периодически происходит на всех серверах в разное время. Процесс, вызывающий всплеск, - 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?