Посмотрим, как повысить производительность работы сервера на Windows Server 2016, 2019 или 2022 в среде с ограниченными ресурсами (2−4 ГБ RAM, 2 vCPU), то есть типичного VPS.

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

Итак, мы заказали VPS в стандартной конфигурации: 2 vCPU по 2,2 ГГц, 2 ГБ RAM и диск 60 ГБ за 982 руб. в месяц с операционной системой Windows Server 2016.

Через несколько минут система установлена:

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

Использование ресурсов

Сначала изучим состояние целевой системы. Что есть в нашем распоряжении, какая конфигурация сервера, какие службы запущены, какую нагрузку они создают.

Аппаратную конфигурацию системы можно посмотреть с помощью утилиты «Сведения о системе» (msinfo32):

Команда services.msc показывает список всех служб, их состояние (Запущено/Остановлено) и тип запуска (Автоматический/Вручную):

Стандартная утилита «Мониторинг ресурсов» (monres) детально показывает использование CPU, памяти, диска и сети конкретными процессами:

Дальнейший мониторинг

В дальнейшем есть смысл наладить постоянный мониторинг ресурсов ��истемы. Так мы будем знать, какие узкие места, насколько загружены память и CPU в пиковые моменты, что нужно проапгрейдить и оптимизировать в первую очередь.

Для дальнейшего мониторинга можно использовать «Мониторинг производительности» (Performance Monitor, perfmon), где добавить соответствующие счётчики:

  • Processor(_Total)\% Processor Time — загрузка CPU;

  • Memory\Available MBytes — доступная память;

  • PhysicalDisk(_Total)\Disk Reads/sec и Disk Writes/sec — нагрузка на диск;

  • Network Interface(*)\Bytes Total/sec — сетевой трафик.

Можно настроить Data Collector Sets для долгосрочного мониторинга и логирования.

Стандартный системный мониторинг можно использовать совместно с другими сторонними системами мониторинга (типа Zabbix, Nagios, Cacti и др.).

Дисковое пространство

Дисковое пространство на сервере видно прямо в «Проводнике», если выбрать «Этот компьютер». На экране показан размер локального диска и количество свободного места на нём. Сразу после установки системы на диске свободно 41,2 из 59,5 ГБ:

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

Нажатие правой кнопкой по любой папке в «Проводнике» выводит на экран её свойства, в том числе объём занятого пространства:

«Проводник» не умеет выкладывать объём нескольких папок. Если есть такая необходимость, можно установить какой-нибудь мощный специализированный файл-менеджер, как Total Commander или Multi Commander.

Multi Commander
Multi Commander

Эти менеджеры помогут оценивать и контролировать место на диске, чтобы всегда оставалось пространство для системных файлов, кэша и работы программ.

Увеличение файла подкачки

При нехватке виртуальной памяти можно увеличить файл подкачки. Это делается в «Свойствах системы» (sysdm.cpl), в разделе «Быстродействие»:

Отключение ненужных служб

В списке запущенных служб services.msc можно выбрать те, которые точно не понадобятся — и отключить их. Например, если сервер не используется как сервер печати, то можно отключить службу печати. Есть довольно большой список служб, которые можно отключить в Winows Server 2016.

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

Список рекомендаций Microsoft содержит рекомендуемую конфигурацию для каждой службы в типичном развёртывании Windows Server 2016 в организации, которая не использует сервер в качестве замены рабочего стола для конечного пользователя.

Вот некоторые службы, для которых указана официальная рекомендация «Можно отключить»:

Название и имя службы

Описание

Комментарий

Установщик ActiveX, AxInstSV

Проверка учётных записей пользователей для установки элементов ActiveX из интернета. Управление установкой на основе групповой политики. Служба запускается по запросу, и при отключении установка элементов ActiveX ведёт себя в соответствии с параметрами браузера по умолчанию.

Можно отключить, если компонент не нужен.

Служба поддержки Bluetooth, bthserv

Поддерживает обнаружение и сопоставление удалённых устройств Bluetooth. Остановка или отключение этой службы может привести к неправильной работе уже установленных устройств Bluetooth и помешать обнаружению или сопоставлению новых устройств.

Можно отключить, если не используется.

CDPUserSvc

Используется для сценариев платформы подключённых устройств.

Шаблон пользовательской службы.

Контактные данные, PimIndexMaintenanceSvc

Индексирует данные контактов для их быстрого поиска. Если остановить эту службу, данные контактов могут отсутствовать в результатах поиска.

Шаблон пользовательской службы.

Пользовательская служба push-уведомлений Windows, WpnUserService

Размещает платформу уведомлений Windows, которая обеспечивает поддержку локальных и push-уведомлений.

Шаблон пользовательской службы.

Служба системы push-уведомлений Windows, WpnService

Запускается в сеансе 0 и служит местом размещения платформы уведомлений и поставщика подключений, обрабатывающего соединение между устройством и сервером WNS.

Требуется для динамических плиток и других функций.

Служба Windows Mobile Hotspot, icssvc

Предоставляет возможность обмениваться мобильными данными с другим устройством.

Служба предварительной оценки Windows, wisvc

Устанавливается по умолчанию.

Функцию можно отключить также с помощью групповой политики.

Получение изображений Windows (WIA), stisvc

Предоставляет службы приобретения изображений для сканеров и камер.

Сервер кадров Камеры Windows, FrameServer

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

Средство построения конечных точек Windows Audio, AudioEndpointBuilder

Управляет звуковыми устройствами для службы Windows Audio. Если остановить эту службу, звуковые устройства и эффекты перестают работать должным образом. Все службы, которые явно зависят от неё, не смогут запускаться.

Звук Windows, Audiosrv

Управляет аудио в программах на базе Windows. Если остановить эту службу, звуковые устройства и эффекты перестают работать должным образом. Все службы, которые явно зависят от неё, не удаётся запустить.

WalletService

Хосты объектов, используемых клиентами кошелька.

Хранилище данных пользователя, UnistoreSvc

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

Доступ к данным пользователя, UserDataSvc

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

Шаблон пользовательской службы

Хост устройств UPnP, upnphost

Позволяет этому компьютеру размещать устройства UPnP. Если остановить эту службу, все размещённые устройства UPnP перестают работать, и компьютер не может добавлять больше размещённых устройств. Если отключить службу, все службы, которые явно зависят от неё, не удастся запустить.

Синхронизационный хост, OneSyncSvc

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

Шаблон пользовательской службы

События получения статических изображений, WiaRpc

Запускает приложения, связанные с событиями получения неподвижных изображений.

Обнаружение SSDP, SSDPSRV

Обнаруживает сетевые устройства и службы, использующие протокол простого обнаружения служб (SSDP), например, устройства с функцией универсального подключения и воспроизведения (UPnP). Кроме того, объявляет устройства и службы SSDP, работающие на локальном компьютере. Если остановить эту службу, компьютер не может обнаружить устройства на основе SSDP, а все службы, которые явно зависят от неё, не удастся запустить.

Служба перечисления устройств чтения смарт-карт, ScDeviceEnum

Создаёт узлы программного устройства для всех устройств чтения смарт-карт, доступных для этого сеанса. Если отключить эту службу, API-интерфейсы WinRT не могут перечислять средства чтения смарт-карт.

Требуется почти исключительно для приложений WinRT

Обнаружение оборудования оболочки Windows, ShellHWDetection

Предоставляет уведомления об аппаратных событиях AutoPlay.

Служба датчиков, SensorService

Управляет функциональностью различных датчиков, включая простую ориентацию устройства (SDO) и историю. Загружает датчик SDO, который передаёт сведения об изменениях в ориентации устройства. При остановке или отключении этой службы датчик SDO не загружается, что предотвращает сбор данных журнала и работу автоматического поворота.

Служба наблюдения за датчиками, SensrSvc

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

Служба данных датчиков, SensorDataService

Предоставляет данные от различных датчиков.

Служба управления радио, RmSvc

Служба управления радио и режимом «в самолёте».

Качественный аудио-видео опыт Windows, QWAVE

Quality Windows Audio Video Experience (qWave) — сетевая платформа для приложений потоковой передачи аудио и видео в домашних сетях на основе IP-протокола. Платформа обеспечивает более высокую производительность и надёжность потоковой передачи аудио и видео, обеспечивая необходимое качество обслуживания сети для аудио- и видеоприложений. Предоставляет механизмы контроля допуска, мониторинга среды выполнения и принудительного применения, обратной связи приложений и приоритета трафика.

Служба качества обслуживания на стороне клиента

Служба «Помощник по совместимости программ», PcaSvc

Этот сервис предоставляет поддержку помощника по совместимости программ (PCA). Он следит за программами, устанавливаемыми и запускаемыми пользователем, и обнаруживает известные проблемы, связанные с совместимостью. Если остановить эту службу, PCA перестаёт работать.

Расширения и уведомления для принтера, PrintNotify

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

Можно отключить, если это не сервер печати.

Диспетчер печати, Spooler

Ставит задания печати в очередь и обеспечивает взаимодействие с принтером. Если отключить, будет невозможно печатать и просматривать принтеры.

Можно отключить, если это не сервер печати или контроллер домена.

Служба телефонной связи, PhoneSvc

Управляет состоянием телефонии на устройстве.

Используется современными приложениями Voice over Internet Protocol (VoIP).

Контейнер службы Microsoft Passport, NgcCtnrSvc

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

Брокер сетевого подключения, NcbService

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

Microsoft Passport, NgcSvc

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

Требуется для входа с помощью ПИН-кода и Windows Hello, который Windows Server не поддерживает.

Помощник по входу в учётную запись Майкрософт, wlidsvc

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

Учётные записи Майкрософт недоступны на Windows Server.

dmwappushsvc

Служба маршрутизации push-сообщений по протоколу беспроводного приложения (WAP).

Служба, необходимая на клиентских устройствах для Intune, мобильного управления устройствами (MDM) и аналогичных технологий управления, а также для Единого фильтра записи. Не требуется для сервера.

Диспетчер загруженных карт, MapsBroker

Служба Windows для доступа приложений к скачанным картам. Эта служба запускается по запросу приложениями, обращающимися к скачанным картам. Отключение этой службы запрещает приложениям получать доступ к картам.

Можно отключить, если никакие приложения не используют на эту службу.

Служба географического положения, lfsvc

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

Можно отключить, если никакие приложения не используют на эту службу.

Общий доступ к Интернет-соединению (ICS), SharedAccess

Обеспечивает преобразование сетевых адресов, адресацию, разрешение имён и службы предотвращения вторжений для домашней или небольшой сети офисов.

Требуется для клиентов, которые используются как точки доступа Wi-Fi, и обеих сторон проекции Miracast. Можно заблокировать ICS с помощью параметра групповой политики «Запрет использования общего доступа к Интернету» в сети домена DNS.

Модуль сопоставления обнаружения топологии на уровне ссылок, lltdsvc.

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

Можно отключить, если нет зависимостей от карты сети.

Всё это можно отключить на сервере.

Пример отключения одной из служб через PowerShell:

# Отключить службу Print Spooler 
Stop-Service -Name Spooler
Set-Service -Name Spooler -StartupType Disabled

Названия служб указаны в таблице выше, просто вставляем в командную строку на место Spooler. Так можно отключить все службы одной командой.

Кроме отключения служб, есть смысл убрать лишние задачи из «Автозагрузки» и «Планировщика заданий» (Task Scheduler).

Другие оптимизации

Напомним общие, универсальные советы по оптимизации Windows:

  • Обновить железо: память и CPU (хостер выделяет дополнительные ресурсы в течение пяти минут без переустановки Windows и без потери данных).

При заказе VPS была возможность использовать SSD вместо HDD, это заметно ускорит загрузку Windows, запуск программ с «холодного» старта, а также копирование файлов и некоторые другие операции, связанные с интенсивной записью на диск или чтением с диска. С другой стороны, не на каждом сервере есть такие задачи, которые стоят подобного ускорения. Но после запуска VPS возможности сменить накопитель уже не будет, так что этот вопрос нужно решать при заказе сервера.

  • Отключить визуальные эффекты Windows: анимации, фон рабочего стола, прозрачность. В «Свойствах системы» (sysdm.cpl), в разделе «Быстродействие» выбираем группу «Обеспечить наилучшее быстродействие», что сразу отключает все эффекты:

  • Оптимизация RDP: некоторые параметры можно изменить с клиентского компьютера, на котором мы запускаем «Подключение к удалённому столу». Здесь перед подключением по нажатию «Показать параметры», а там указываем оптимальное для производительности разрешение экрана (800×600), глубину цвета (16 бит) и т. д.

  • Отключить уведомления на рабочем столе.

  • Параметры групповой политики (GPO). Там нужно проверить параметры перенаправления для клиентских устройств и ресурсов через RDP — и отключить ненужные. Чем больше ресурсов перенаправляется на удалённый компьютер (например, звук), тем больше ресурсов расходуется впустую. Некоторые ресурсы мы уже отключили в параметрах «Подключения к рабочему столу», а другие можно отключить в GPO, запустив gpedit.msc и перейдя в раздел «Конфигурация компьютера» → «Административные шаблоны» → «Компоненты Windows» → «Службы удалённых рабочих столов» → «Узел сеансов удалённых рабочих столов» → «Перенаправление устройств и ресурсов». Отключаем ненужные параметры:

Ну а в целом самый эффективный способ улучшить производительность сервера — сделать апгрейд. Например, установить больше памяти или ОС Linux.

Руководство составлено на основе базы знаний UltraVDS, официальных рекомендаций Microsoft и других источников.