Назад | Перейти на главную страницу

Как я могу отслеживать использование ЦП и процессы в Windows Server 2012 как услуге в течение 24 часов?

У нас есть длительная производительная операция, которая длится 6 часов. Когда он запускался в последний раз, что-то произошло в течение 5 минут, когда его производительность резко упала и вызвало несколько тайм-аутов посреди ночи. Я подозреваю, что какой-то другой процесс вмешался и забил процессор или что-то подобное.

На этом сайте было предложено использовать ProcessMonitor для мониторинга ЦП. Однако кажется, что он захватывает трафик только во время работы, и это настольное приложение. Мой экземпляр сервера Windows запускает вас после 10 минут бездействия, контролируемого групповой политикой, и я не могу ее изменить, поэтому я не могу использовать настольные приложения для мониторинга.

Мне нужно отслеживать использование ЦП в течение 24 часов. Меня интересуют только имя процесса и использование процессора (%), чтобы я мог узнать, что, если что-то, пинает и разрушает вещи.

Поскольку вас уволили, мне действительно нужно что-то, что может работать как служба Windows.

Есть ли способ сделать это (используя ProcessMonitor или аналогичный инструмент - наверняка сервер Windows имеет что-то встроенное?) В качестве службы, поэтому мне не нужно входить в удаленный рабочий стол, или мне придется найти какой-то скрипт перемещения мыши и оставить компьютер включенным на всю ночь?

Редактировать:

Performance Monitor выглядит многообещающе. Трудно понять, как настроить его, чтобы получить то, что я хочу.

Я сделал собственный ЦП сборщика данных и идентификатор процесса:

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

Итак, я могу увидеть график за 24 часа, увидеть точку, где есть всплеск, щелкнуть по нему и посмотреть, какой процесс его вызывает.

Я даже не уверен, что моя вышеупомянутая конфигурация, если я получу ее, также сообщит мне имя процесса, в нем написано идентификатор процесса, если это окажется guid или что-то подобное, это, вероятно, тоже не поможет, особенно если процесс запускается и останавливается и все еще не работает, когда я иду расследовать.

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

Видеть Эта статья для получения базового руководства по использованию системного монитора для входа в Windows Server 2012 R2.

Видеть эта отличная статья обо всех доступных вам инструментах для проверки производительности в Windows (в основном интерактивные инструменты).

Воспользовавшись предложением Даниэля К. монитора производительности, я узнал, как это сделать.

  • Загрузить монитор производительности
  • Перейдите в "Наборы сборщиков данных"
  • Разверните "Определено пользователем"
  • Создайте новый "набор данных"
  • Выберите Создать вручную (Дополнительно), обратите внимание, что вы не можете изменить имя без удаления, поэтому сделайте это сейчас разумным.
  • Нажмите "Далее", выберите "Создать журналы данных" и "Счетчик производительности".
  • Нажмите "Далее", нажмите "Добавить".
  • Вверху слева разверните «Процесс», нажмите «% загруженности процессора» и все, что вам может понадобиться.
  • Внизу слева нажмите ''
  • Нажмите кнопку «Добавить >>» и нажмите ОК.
  • Выберите подходящий интервал выборки и продолжайте нажимать «Далее», пока не дойдете до конца мастера.
  • Вы можете начать сбор, щелкнув правой кнопкой мыши набор сборщиков данных и нажав Старт, или перейдя в его свойства и настроив расписание. Я обнаружил, что мой сборщик данных перестал работать примерно через 30 минут без установки условия остановки, но это могло быть аномалией.
  • Когда сбор данных будет завершен, разверните «Отчеты»> «Пользовательские»> «Ваш набор данных».
  • Дважды щелкните, чтобы открыть его.
  • Обратите внимание, что внизу написано «% загруженности процессора», а для экземпляра - «_Total». По умолчанию он показывает общую загрузку ЦП. Сюда входит «Время простоя», поэтому оно всегда будет около 100%.
  • Нажмите зеленую кнопку + на верхней панели чуть выше графика (не в верхнем окне)
  • Нажмите «Процесс» вверху слева, а внизу вы можете выбрать отдельные процессы для просмотра или выбрать »и нажать« Добавить ».
  • Нажмите OK, и вы должны увидеть подробный график с использованием ЦП для каждого процесса.

Если счетчики производительности Windows не работают (действительно, у них есть некоторые досадные ограничения), вы можете использовать специальное решение для сбора и визуализации метрик. Это может показаться излишним, но, тем не менее, может стать ценным дополнением к вашему набору инструментов.

Я могу порекомендовать Prometheus как метрическое решение для использования в таком случае.

  1. Прометей это база данных, в которой хранятся данные. Установите его на какой-нибудь компьютер (может быть такой же, как тот, который вы отслеживаете). Самым простым вариантом установки может быть контейнер Docker в Linux, но для кратковременного одноразового использования вы можете просто запустить его как exe. У него есть веб-интерфейс для запроса данных.
  2. wmi_exporter агент сбора данных. Установите его и обязательно включите метрики процесса во время установки (необходимо предоставить соответствующие аргументы).
  3. Определите wmi_exporter как цель в файле конфигурации Prometheus. Это заставит Prometheus извлекать данные из экспортера (я считаю, что интервал по умолчанию был каждые 60 секунд).

Далее следует самое сложное. Prometheus - это база данных - вы можете использовать веб-интерфейс для запроса необработанных данных, но графический интерфейс не очень удобен для пользователя, а язык запросов PromQL может быть неинтуитивным, если вы не привыкли работать с данными временных рядов. Рекомендую запрос irate(wmi_process_cpu_time_total[5m]) начать с. Это даст вам график использования ЦП в секундах процессорного времени в секунду реального времени для каждого процесса.

irate предоставит вам данные между двумя последними точками данных. Если вы хотите получить сглаженные средние значения, используйте rate который будет использовать 5m как период усреднения (irate будет использовать его как максимальный предел).

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

PS. Prometheus обычно развертывается с Графана в качестве графического интерфейса визуализации (заменив встроенный графический интерфейс Prometheus для barebones). Однако для быстрого устранения неполадок вам это не понадобится.

PPS. технологический экспортер и node_exporter являются Linux-эквивалентом экспортера WMI.