Получить историю использования ЦП/памяти

Вопрос или проблема

Существует ли способ записать информацию Диспетчера задач о загрузке ЦП и памяти для последующего анализа? Или аналогичный инструмент?

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

  • Пуск > Выполнить > perfmon
  • Нажмите на знак плюса рядом с Журналами производительности и Оповещениями
  • Щелкните правой кнопкой на Системном журнале и выберите свойства.
  • Настройте временные интервалы выборки на ваше усмотрение
  • Когда закончите, нажмите OK, затем нажмите на знак плюса в верхней части окна.

Эта страница предлагает довольно неплохое пошаговое руководство с скриншотами

Вы можете рассмотреть возможность использования решения для мониторинга, такого как zabbix, zenoss, чтобы собирать и анализировать ваши показатели производительности.

Process Explorer также покажет историю загрузки ЦП.

Я использую PolyMon для мониторинга таких вещей. Вы можете определить различные “условия тревоги”, о которых вы хотели бы получать уведомления, так что я получаю уведомление, если у одного из моих серверов возникла проблема.

Но он также хранит все эти результаты в долгосрочной базе данных, так что я могу вернуться и посмотреть использование памяти сервера “X” и увидеть его тенденции по использованию памяти за последние N дней/недель/месяцев/лет.

http://polymon.codeplex.com/

Cacti — это отличная веб-программа для создания графиков. Она может отображать графики загрузки ЦП, памяти, дискового пространства и т.д. Также её можно расширить с помощью собственных плагинов.

Открытое решение Nagios также делает это:

Да, perfmon (“Монитор производительности” в Панели управления)

Простой скрипт PowerShell для этой задачи:

# Определить файл вывода
$outputFile = "C:\tmp\cpu_usage_log.csv"

# Проверка, существует ли файл, если нет, создать с заголовками
if (!(Test-Path $outputFile)) { "Timestamp,CPU_Usage,Memory_Usage" | Out-File $outputFile }

while ($true) {
    # Захват текущего временного штампа, использования ЦП и памяти
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    $cpuUsage = [math]::Round((Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue, 2)
    $memoryUsage = [math]::Round((Get-Counter '\Memory\Committed Bytes').CounterSamples.CookedValue / 1MB)

    # Форматирование вывода
    $logEntry = "$timestamp,$cpuUsage,$memoryUsage"

    # Добавление записи в журнал к файлу
    $logEntry | Out-File -FilePath $outputFile -Append

    # Пауза на заданный интервал (например, 5 секунд)
    Start-Sleep -Seconds 5
}

Затем сохраните в файл (например, log_cpu_and_memory.ps1) и запустите в повышенном PowerShell (Win + R -> powershell.exe -> Ctrl + Shift + Enter)

./log_cpu_and_memory.ps1

Вывод представляет собой файл CSV со следующим форматом:

Timestamp,CPU_Usage,Memory_Usage
2024-09-23 13:25:48,0.85,14520
2024-09-23 13:25:55,1.44,14464
2024-09-23 13:26:02,4.9,14599

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

Ответ или решение

Конечно! Для записи информации о использовании ЦП и памяти на компьютере с операционной системой Windows, существует несколько инструментов, которые могут вам помочь. Вот подробное руководство:

1. Использование Performance Monitor (PerfMon)

Performance Monitor (PerfMon) – это встроенная утилита в Windows, которая позволяет отслеживать и записывать различные показатели системы, включая использование процессора и памяти.

Чтобы настроить его:

  1. Откройте командную строку или окно "Выполнить" (Win + R) и введите perfmon, затем нажмите Enter.
  2. В левой панели выберите "Performance Logs and Alerts".
  3. Щелкните правой кнопкой мыши на "System Log" и выберите "Properties".
  4. Настройте параметры выборки по вашему усмотрению.
  5. После завершения настройки нажмите OK, затем нажмите кнопку "+" в верхней части окна, чтобы добавить нужные метрики.

Эта информация может быть сохранена в файл для последующего анализа.

2. Использование PowerShell

Вы можете создать простой скрипт на PowerShell для периодической записи информации о ЦП и памяти в CSV файл:

# Определите файл вывода
$outputFile = "C:\tmp\cpu_usage_log.csv"

# Проверьте, существует ли файл, если нет, создайте его с заголовками
if (!(Test-Path $outputFile)) { "Timestamp,CPU_Usage,Memory_Usage" | Out-File $outputFile }

while ($true) {
    # Захват текущего времени, использования ЦП и памяти
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    $cpuUsage = [math]::Round((Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue, 2)
    $memoryUsage = [math]::Round((Get-Counter '\Memory\Committed Bytes').CounterSamples.CookedValue / 1MB)

    # Форматирование записи
    $logEntry = "$timestamp,$cpuUsage,$memoryUsage"

    # Добавление записи в файл
    $logEntry | Out-File -FilePath $outputFile -Append

    # Пауза на заданный интервал (например, 5 секунд)
    Start-Sleep -Seconds 5
}

Сохраните этот скрипт в файл (например, log_cpu_and_memory.ps1) и выполните его в повышенной среде PowerShell.

3. Альтернативные инструменты для мониторинга

Если вам нужны более мощные решения для мониторинга, рассмотрите использование следующих инструментов:

  • Zabbix: мощное решение для мониторинга, которое позволяет собирать и анализировать производительность ваших систем.
  • Nagios: еще один популярный открытый инструмент для мониторинга системы.
  • Cacti: веб-программа для графиков, которая может отображать использование ЦП, памяти и других ресурсов системы.
  • Process Explorer от Sysinternals: показывает историю использования ЦП, что также может быть полезно.

Заключение

Использование Performance Monitor, PowerShell или специализированных инструментов, таких как Zabbix и Nagios, позволяет вам эффективно записывать и анализировать использование ресурсов вашей системы. Выбор конкретного инструмента зависит от ваших предпочтений и требований к мониторингу.

Оцените материал
Добавить комментарий

Капча загружается...