4

У меня есть сервер, который таинственным образом израсходовал много процессора поздно ночью, когда он не должен быть под большой нагрузкой. Это вызывает тайм-аут некоторых вызовов базы данных, и я настроил несколько предупреждений в PerfMon для запуска, если загрузка ЦП превышает 50%, и это, похоже, совпадает с пиками ЦП, совпадающими с тайм-аутами базы данных.

Я подозреваю, что это какая-то запланированная задача, но я просмотрел список запланированных задач Windows и SQL Server и ничего не нашел. Журналы событий Windows содержат только тайм-ауты базы данных и записи PerfMon, указывающие, что загрузка ЦП возросла.

Мой вопрос заключается в следующем: как определить, какой процесс вызывает скачок ЦП без физического присутствия? Я действительно не хочу, чтобы войти в сервер в 2 часа ночи

Обновление: оказывается, проблема была с продуктом, над которым я работаю. Проблема начала проявляться в обычные рабочие часы, и мне не пришлось полагаться на какую-то хитрую технику исследования производительности.

1 ответ1

7

Вот несколько вариантов; самый простой из них - Process Explorer, если загрузка процессора значительна, иначе вам, скорее всего, захочется взглянуть на график в Process Monitor. Я чувствую, что наиболее вероятным виновником является либо резервное копирование, либо обновление, поэтому вы можете посмотреть, когда это запланировано. Планировщик задач показывает, когда задачи выполнялись в последний раз ...

Бесследно

  • Process Explorer, проверьте циклы процессора, используемые вашими процессами.

На основе события

  • ProcDump может автоматически создавать файлы дампа на основе таких вещей, как высокая загрузка ЦП.

    Преимущество наличия дампа в том, что вы, разработчик, можете отлаживать его в WinDBG.

Со следом

  • Монитор процессов, установите для него большую историю и позволяйте регистрировать только события профилирования.

    1. В опциях вы можете установить глубину истории и включить генерацию событий профилирования.

    2. Затем отключите кнопки ввода / вывода, реестра и сети.

  • В Windows Performance Toolkit имеется XPerf, который позволяет выполнять расширенные трассировки.

    Это может быть трудно в первый раз, поэтому вы можете попробовать Process Monitor сначала ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .