Блог / Статьи

Полезная информация для вашего хостинга

Сердце сервера под контролем: как отслеживать производительность Windows Server на VPS

Сердце сервера под контролем: как отслеживать производительность Windows Server на VPS

Представьте себе, что ваш виртуальный сервер — это живой организм. У него есть пульс (процессор), дыхание (память), кровообращение (сеть) и пищеварение (диск). Если один из этих процессов начинает сбоить, весь организм страдает. Сайт начинает тормозить, приложения зависают, пользователи уходят. А вы даже не понимаете, что случилось.

Но что, если у вас есть медицинский монитор, который следит за каждым параметром в реальном времени? Что, если система сама предупредит вас, когда сердце начнёт биться слишком быстро? Именно этим и занимается мониторинг производительности Windows Server на VPS.

В этой статье мы погрузимся в глубину системы, разберёмся с встроенными инструментами, научимся настраивать автоматические оповещения и поймём, как всё это работает в реальной жизни. Поехали!

Живой взгляд на систему: Монитор ресурсов (Resource Monitor)

Первый шаг к пониманию состояния сервера — это Resource Monitor, или, как его ещё называют, «мозговой сканер» Windows Server. Этот инструмент позволяет буквально «заглянуть внутрь» системы и увидеть, кто и что потребляет.

Он встроен в Windows Server по умолчанию, не требует установки сторонних программ и работает мгновенно. Это как рентген-снимок: вы видите не просто цифры, а полную картину происходящего.

Как запустить Resource Monitor

Откройте меню «Выполнить», нажав комбинацию клавиш Win + R. Введите команду:

resmon

и нажмите Enter. Через пару секунд откроется окно с четырьмя основными вкладками:

  • CPU — загрузка процессора
  • Memory — использование оперативной памяти
  • Disk — активность дисковых операций
  • Network — сетевой трафик

Что показывает вкладка CPU?

Здесь вы видите список всех процессов, которые используют процессор. Каждая строка — это запущенная программа, служба или системный компонент. Столбец % CPU показывает, сколько процентов вычислительной мощности потребляет каждый процесс.

Пример: Вы видите, что процесс sqlservr.exe (сервер баз данных SQL Server) потребляет 78% процессора. Это может быть нормально, если у вас идёт тяжёлый запрос. Но если это происходит постоянно — это повод задуматься о оптимизации базы или увеличении ресурсов.

Чтобы быстро найти «жирного кота», кликните по заголовку столбца % CPU — список отсортируется по убыванию. Самые «прожорливые» процессы окажутся наверху.

А что с памятью?

Перейдите на вкладку Memory. Здесь вы увидите:

  • Physical Memory — общее количество оперативной памяти
  • Available — сколько памяти свободно
  • Used by processes — сколько памяти занято процессами

Обратите внимание на столбец Working Set — это объём памяти, который процесс реально использует в данный момент. Если какой-то процесс потребляет сотни мегабайт или даже гигабайт — это повод для проверки.

Важно: Не путайте Working Set с Commit. Commit — это объём виртуальной памяти, который процесс запросил, но он может быть больше, чем реально используется.

monit01

Диск и сеть: кто тормозит?

На вкладке Disk вы увидите, какие процессы активно читают или пишут на диск. Столбцы Read (B/sec) и Write (B/sec) покажут интенсивность операций.

Пример: Процесс svchost.exe вдруг начал писать 50 МБ/сек. Это может быть антивирус, обновление Windows или, что хуже — вирус. Нужно проверить, какой именно экземпляр svchost.exe это делает (можно посмотреть через вкладку CPU).

Вкладка Network покажет, какие процессы используют интернет. Вы увидите, кто отправляет и принимает данные, по каким портам идёт обмен, и какой IP-адрес используется.

Практический совет: Если вы заметили подозрительный IP-адрес (например, из Китая или России, если ваш бизнес не связан с этими странами), стоит проверить систему на наличие бэкдоров.

Глубокий анализ: Монитор производительности (Performance Monitor)

Если Resource Monitor — это рентген, то Performance Monitor — это МРТ. Он даёт не просто снимок, а полноценную историю, позволяет строить графики, настраивать оповещения и анализировать тренды.

Этот инструмент называется perfmon и является частью Windows Server с 2000 года. Он мощный, гибкий и — главное — бесплатный.

Как открыть Performance Monitor

Нажмите Win + R, введите:

perfmon

и нажмите Enter. Откроется окно с деревом слева и пустым пространством справа.

Перейдите в раздел Монитор производительности (Performance Monitor). Здесь вы можете добавить счётчики — параметры, за которыми будете следить.

Что такое счётчики производительности?

Счётчики — это метрики, которые Windows собирает в реальном времени. Каждый счётчик — это конкретный показатель. Например:

  • Processor(_Total)\% Processor Time — загрузка процессора в процентах
  • Memory\Available MBytes — свободная оперативная память в мегабайтах
  • LogicalDisk(C:)\% Free Space — процент свободного места на диске C:
  • Network Interface\Bytes Total/sec — скорость сетевого трафика

Как добавить счётчики

Нажмите на зелёный плюс + в верхней части окна. Откроется список счётчиков. Найдите нужный, выберите экземпляр (например, _Total для процессора) и нажмите Add.

После этого график начнёт отображать данные. Вы увидите, как загрузка процессора скачет, сколько памяти освобождается, как растёт трафик.

Пример: Вы добавили счётчик Processor(_Total)\% Processor Time. График показывает, что каждые сутки в 13:00 загрузка прыгает до 95%. Это явный сигнал: что-то происходит в это время.

Сохранение данных: Data Collector Sets

Performance Monitor позволяет не только смотреть в реальном времени, но и сохранять данные для последующего анализа. Для этого используются наборы сборщиков данных (Data Collector Sets).

Это как видеонаблюдение: система записывает всё, что происходит, и вы можете потом посмотреть архив.

Автоматические оповещения: когда сервер кричит «Помогите!»

А что, если сервер сам будет предупреждать вас о проблемах? Например, если процессор загружен больше 85% или осталось меньше 500 МБ памяти?

Да, это возможно. И делается это через оповещения в Data Collector Sets.

Создание набора сборщика данных с оповещением

Шаг за шагом настроим автоматическое уведомление о перегрузке процессора.

  1. Откройте perfmon (Win + R → perfmon)
  2. В левой панели разверните узел Наборы сборщиков данныхОпределённые пользователем
  3. Кликните правой кнопкой → СоздатьНабор сборщика данных
  4. Выберите Создать вручную (дополнительно) → Далее
  5. Укажите: Создать журнал производительности → Далее
  6. Нажмите Добавить и выберите счётчик:
Processor → % Processor Time → _Total

Нажмите Add, затем ОК.

  1. Нажмите Далее, укажите путь для сохранения (можно оставить по умолчанию)
  2. Нажмите Готово

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

monit02

Настройка оповещения (Alert)

  1. В дереве слева найдите созданный набор (например, CPU Alert)
  2. Кликните по нему правой кнопкой → Свойства
  3. Перейдите на вкладку Оповещения (Alerts)
  4. Нажмите Добавить
  5. Выберите счётчик: Processor(_Total)\% Processor Time
  6. Установите условие: Greater than85
  7. В секции Actions отметьте:
  • Записать в журнал событий (Event Log)
  • Выполнить программу (если нужно запустить скрипт)

Нажмите ОК.

Запуск набора

Теперь кликните по набору правой кнопкой и выберите Запустить. С этого момента сервер будет следить за загрузкой CPU и при превышении 85% — писать событие в журнал.

Проверить можно через Просмотр событий (eventvwr.msc) — ищите событие с источником PerfTrack.

Оповещение по памяти: пример настройки

Аналогично можно настроить оповещение на нехватку памяти.

  1. Создайте новый набор (например, Memory Alert)
  2. Добавьте счётчик: Memory\Available MBytes
  3. В оповещении укажите: Less than500
  4. Действие: Записать в журнал событий

Теперь, если свободной памяти останется меньше 500 МБ, вы получите предупреждение.

Расширение: отправка email через PowerShell

Чтобы получать уведомления на почту, можно настроить выполнение PowerShell-скрипта.

Пример скрипта alert_cpu.ps1:

# alert_cpu.ps1
$smtpServer = "smtp.yourdomain.com"
$smtpFrom = "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript."
$smtpTo = "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript."
$messageSubject = "ALERT: High CPU Load on VPS"
$messageBody = "CPU usage exceeded 85% at $(Get-Date)"

$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($smtpFrom, $smtpTo, $messageSubject, $messageBody)

В свойствах оповещения укажите:

Программа: powershell.exe
Параметры: -ExecutionPolicy Bypass -File "C:\Scripts\alert_cpu.ps1"

Важно: Убедитесь, что PowerShell разрешён на сервере, и скрипт имеет права на выполнение.

Практика: как мониторинг спасает в реальной жизни

Теория — это хорошо, но как всё это работает на практике?

Случай 1: сайт падает каждый день в 13:00

У вас сайт на 1С-Битрикс. Каждый день в 13:00 он начинает тормозить. Пользователи жалуются, SEO падает, вы в стрессе.

Вы настроили Performance Monitor и увидели: в 13:00 загрузка CPU прыгает до 98%. В Resource Monitor находите процесс php-cgi.exe, который потребляет 70% CPU.

Проверяете логи — оказывается, в это время запускается ежедневная выгрузка товаров из 1С. Скрипт не оптимизирован, грузит базу, вызывает миллионы запросов.

Решение: Переносите задачу на 3:00 ночи, когда нагрузка минимальна. Или оптимизируете запросы. Проблема решена.

Случай 2: закончилась память

Вы получаете оповещение: Available MBytes < 500. Заходите на сервер — память почти вся занята.

В Resource Monitor видите, что w3wp.exe (рабочий процесс IIS) потребляет 3 ГБ. Перезапускаете пул приложений — память освобождается.

Выясняете: утечка памяти в одном из модулей ASP.NET. Чините код, обновляете. Теперь сервер работает стабильно.

Случай 3: диск заполнен

Счётчик LogicalDisk\% Free Space падает ниже 10%. Система отправляет email.

Проверяете — оказывается, логи IIS растут по 5 ГБ в день. Включаете ротацию логов, настраиваете архивацию. Диск снова дышит.

monit04

Итог: мониторинг — это не роскошь, а необходимость

Windows Server на VPS — это не «поставил и забыл». Это живая система, которая требует внимания. Используя встроенные инструменты — Resource Monitor, Performance Monitor и Data Collector Sets, — вы получаете полный контроль.

Вы можете:

  • Видеть, кто и что потребляет ресурсы
  • Анализировать тренды и предсказывать проблемы
  • Настроить автоматические оповещения
  • Сохранять данные для аудита и отчётов
  • Быстро реагировать на сбои

И всё это — бесплатно, без установки сторонних программ.

Начните сегодня. Откройте resmon, посмотрите, что происходит на вашем сервере. Настройте хотя бы одно оповещение. И вы удивитесь, сколько «невидимых» проблем окажется на поверхности.

Потому что лучший способ избежать катастрофы — это увидеть её заранее.