Содержание
Представьте себе, что ваш виртуальный сервер — это живой организм. У него есть пульс (процессор), дыхание (память), кровообращение (сеть) и пищеварение (диск). Если один из этих процессов начинает сбоить, весь организм страдает. Сайт начинает тормозить, приложения зависают, пользователи уходят. А вы даже не понимаете, что случилось.
Но что, если у вас есть медицинский монитор, который следит за каждым параметром в реальном времени? Что, если система сама предупредит вас, когда сердце начнёт биться слишком быстро? Именно этим и занимается мониторинг производительности 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 — это объём виртуальной памяти, который процесс запросил, но он может быть больше, чем реально используется.
Диск и сеть: кто тормозит?
На вкладке 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.
Создание набора сборщика данных с оповещением
Шаг за шагом настроим автоматическое уведомление о перегрузке процессора.
- Откройте perfmon (Win + R → perfmon)
- В левой панели разверните узел Наборы сборщиков данных → Определённые пользователем
- Кликните правой кнопкой → Создать → Набор сборщика данных
- Выберите Создать вручную (дополнительно) → Далее
- Укажите: Создать журнал производительности → Далее
- Нажмите Добавить и выберите счётчик:
Processor → % Processor Time → _Total
Нажмите Add, затем ОК.
- Нажмите Далее, укажите путь для сохранения (можно оставить по умолчанию)
- Нажмите Готово
Теперь набор создан, но он пока только собирает данные. Нам нужно, чтобы он реагировал на перегрузку.
Настройка оповещения (Alert)
- В дереве слева найдите созданный набор (например,
CPU Alert
) - Кликните по нему правой кнопкой → Свойства
- Перейдите на вкладку Оповещения (Alerts)
- Нажмите Добавить
- Выберите счётчик:
Processor(_Total)\% Processor Time
- Установите условие: Greater than → 85
- В секции Actions отметьте:
- Записать в журнал событий (Event Log)
- Выполнить программу (если нужно запустить скрипт)
Нажмите ОК.
Запуск набора
Теперь кликните по набору правой кнопкой и выберите Запустить. С этого момента сервер будет следить за загрузкой CPU и при превышении 85% — писать событие в журнал.
Проверить можно через Просмотр событий (eventvwr.msc) — ищите событие с источником PerfTrack.
Оповещение по памяти: пример настройки
Аналогично можно настроить оповещение на нехватку памяти.
- Создайте новый набор (например,
Memory Alert
) - Добавьте счётчик: Memory\Available MBytes
- В оповещении укажите: Less than → 500
- Действие: Записать в журнал событий
Теперь, если свободной памяти останется меньше 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 ГБ в день. Включаете ротацию логов, настраиваете архивацию. Диск снова дышит.
Итог: мониторинг — это не роскошь, а необходимость
Windows Server на VPS — это не «поставил и забыл». Это живая система, которая требует внимания. Используя встроенные инструменты — Resource Monitor, Performance Monitor и Data Collector Sets, — вы получаете полный контроль.
Вы можете:
- Видеть, кто и что потребляет ресурсы
- Анализировать тренды и предсказывать проблемы
- Настроить автоматические оповещения
- Сохранять данные для аудита и отчётов
- Быстро реагировать на сбои
И всё это — бесплатно, без установки сторонних программ.
Начните сегодня. Откройте resmon, посмотрите, что происходит на вашем сервере. Настройте хотя бы одно оповещение. И вы удивитесь, сколько «невидимых» проблем окажется на поверхности.
Потому что лучший способ избежать катастрофы — это увидеть её заранее.