Оптимизация сети windows server

Обновлено: 02.07.2024

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

Оптимизация операционной системы (FreeBSD)

Оптимизация фронтэнда (nginx)

Этот вид можно отнести в преждевременной оптимизации, хотя он поможет увеличить общий response time сайта. Среди стандартных оптимизаций стоит обратить внимание на reset_timedout_connection; sendfile; tcp_nopush и tcp_nodelay.

Оптимизация бэкэнда

  • APC – это фреймворк, который позволяет уменьшить нагрузку благодаря кешированию скомпилированного кода в ОП. APC locking стоит обновить, так как он может тормозить и вместо APC многие начинают применять eAccelerator. Стоит произвести замену locking на spinlock или pthread mutex. Значение APC hints стоит поднимать при огромном количестве .php файлов или при частом кешировании в APC user cache. APC fragmentation является признаком того, что вы применяете APC не по назначению. Он не может самостоятельно заниматься удалением записей по TTL или LRU.
  • PHP 5.3 поможет увеличить прирост производительности, поэтому стоит обновить версию PHP, хотя список deprecated функций может напугать многих.

Оптимизация базы данных

Существует несколько способов оптимизации MySQL, причём даже без изменений кодов, ведь половину тюнинга сервера можно осуществлять в полуавтоматическом режиме с помощью утилит tuningprimer, mysqltuner и mysqlsla.

Система Postgres является достаточно разносторонней, ведь она относится к классу Enterprise и на ней прекрасно работает Skype, но в то же время её можно установить даже на мобильный телефон. Среди доступных 200 параметров, 45 из них являются основными и отвечают за тюнинг.

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

Разгрузка базы данных

Для оптимизации работы базы данных и увеличения её производительности следует как можно меньше её использовать.

Дополнительные приложения для проведения оптимизации

в этом разделе вы получите обзор различных функций сетевой разгрузки и оптимизации, доступных в Windows Server 2016, и поясняете, как они помогают повысить эффективность работы в сети. Эти технологии включают только программное обеспечение (т. е.) функции и технологии, интегрированные функции и технологии программного обеспечения (SH) и компоненты и технологии (ПРИНЕС). Дополнительные сведения см. в разделе требования к сети узла для Azure Stack хЦи.

в Windows Server 2016 доступны три категории сетевых функций:

Только программное обеспечение (so) — функции и технологии. Эти функции реализуются как часть операционной системы и не зависят от базовых сетевых адаптеров. Иногда эти функции потребует некоторой настройки сетевого адаптера для оптимальной работы. К таким примерам относятся такие компоненты Hyper-V, как Вмкос, ACL и другие функции Hyper-V, такие как объединение сетевых карт.

Встроенные функции и технологии программного обеспечения и оборудования (SH). Эти функции содержат компоненты программного и аппаратного обеспечения. Программное обеспечение тесно связано с возможностями оборудования, необходимыми для работы функции. К таким примерам относятся ВММК, VMQ, разгрузка контрольной суммы IPv4 на стороне отправки и RSS.

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

дополнительные свойства сетевого адаптера. вы можете управлять сетевыми картами и всеми функциями с помощью Windows PowerShell командлета NetAdapter. Также можно управлять сетевыми картами и всеми функциями с помощью панели управления сетью (ncpa.cpl).

Поэтому функции и технологии доступны во всех аппаратных архитектурах, независимо от скорости сетевого адаптера или возможностей сетевого адаптера.

Функции SH и ПРИНЕС доступны только в том случае, если сетевой адаптер поддерживает функции или технологии.

Win2k3 и Win2k8 по умолчанию оптимизированы под стандартную сетевую среду. Но
если серверную ОС надлежащим образом настроить (например, под требования
компании), то это благоприятно отразится на каждом аспекте работы сети, начиная
от самого оборудования и заканчивая пользователями, подключенными к серверу.

Анализируем причину

Любая внештатная ситуация, в том числе и снижение производительности сервера,
требует тщательного анализа. Не собрав всей информации, можно нагородить дел.
Возьмем такой случай. Контроллер домена (КД) уже не справляется со своими
обязанностями - пользователи подолгу регистрируются в системе или не могут зайти
в сетевую папку. В зависимости от топологии Сети, вариантов решения может быть
несколько.

Например, можно модернизировать железо, перераспределить нагрузку между
серверами (в том случае, когда КД выполняет еще и другую задачу) или же снизить
нагрузку на основной КД за счет установки еще одного КД в отдельном
подразделении компании. При использовании Win2k8 в удаленном офисе есть вариант
установить контроллер домена только для чтения (RODC). Тогда в случае
компрометации сервера или банальной кражи оборудования можно не бояться за
нарушение функционирования всего леса (подробности смотри в статье «В лабиринте
AD»). Так мы разгрузим основной КД и снизим нагрузку на Сеть (в том числе и на
внешний канал, если для соединения между офисами используется интернет).

Узкие места могут возникать по нескольким причинам:

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

Теперь разберем некоторые моменты подробнее.

Ищем бутылочное горлышко

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

В новой Win2k8 и Win2k3, которая еще долго будет верой и правдой служить на
серверах, системы мониторинга несколько отличаются, но не настолько, чтобы не
разобраться при смене системы. Диспетчер задач, вызываемый по <Ctrl+Alt+Del> (в
Win2k8 нужно будет выбрать в меню еще и Start Task Manager) или <Ctrl+Shift+Esc>,
позволяет во вкладке Performance увидеть состояние основных системных ресурсов (CPU,
ОЗУ) и Сети (во вкладке Networking). В обеих системах можно оценить вклад
отдельного процесса в общую потерю производительности. Если информации
недостаточно, добавляем счетчики производительности. Для этого достаточно
перейти во вкладку «Processes» и выбрать в меню View - Select Columns, после
чего установить флажки напротив нужных пунктов. По умолчанию активировано всего
два счетчика: CPU Usage (загрузка ЦП) и Memory - Private Working Set (Memory
Usage в Win2k3, Использование памяти). Названия некоторых счетчиков в системах
отличаются, но разобраться несложно.

На сайте Microsoft для Win2k3 доступно еще одно эффективное, хотя и
малоизвестное средство анализа производительности - Server Performance Advisor
V2.0 (SPA). С помощью этой утилиты можно собрать информацию о настройках, данные
со счетчиков с одного или нескольких серверов, отслеживать события (Event
Tracing). По результатам работы получим удобные для чтения и анализа отчеты о
производительности, содержащие предупреждения и рекомендации по устранению
неполадок. В SPA имеется более 90 предварительно настроенных групп коллекторов.
Причем самые востребованные уже настроены! Например, коллектор System Overview
содержит основные системные счетчики: CPU usage, Memory usage, занятые файлы и
TCP-клиенты, top-потребители CPU, а также счетчики для основных серверов -
контроллеров домена, файловых служб AD, IIS, DNS, Terminal Services, SQL и др.

В Win2k8 контроль за основными параметрами системы возложен на Reliability
and Performance Monitor (RPM), который вобрал в себя функции отдельных
приложений, доступных в Win2k3. Запустить его можно несколькими способами: из
меню Administrative Tools, нажатием клавиши Resource Monitor во вкладке
Performance в Task Manager, выбрав пункт в меню Diagnostic в Server Manager или
введя в консоли perfmon.exe. В главном окне RPM увидим четыре графика, выводящие
информацию о загрузке CPU, Disk, Memory и Network в реальном времени. Чуть ниже
расположены таблицы с подробной информацией, разбитой по этим же группам. В
каждой показан процесс и связанные с ним данные (PID, объем ОЗУ, загрузка CPU,
Response Time дисковых операций, количество переданных и принятых сетевых
пакетов и прочее).

Зачастую достаточно одного взгляда на графики и таблицу, чтобы оценить
обстановку и принять решение. Но и это еще не все. «Монитор Производительности»
находится в меню Performance Monitor. По умолчанию активирован только один
счетчик Processor Time, но достаточно выбрать в контекстном меню Add
Counter, как откроется одноименное окно, в котором можно выбрать нужный счетчик.
Полный список охватывает все параметры системы и сервисов. Следующее меню, хотя
и не связано с оценкой производительности, - тем не менее, очень полезно при
поиске неисправностей. Речь идет о Reliability Monitor («Монитор Надежности»).
Справа от графика выводится индекс ожидания появления проблемы System Stability
Index («Системный Индекс Устойчивости»). График Stability Index помогает быстро
найти дату, когда было замечено первое появление проблемы (уменьшился System
Stability Index). В поле System Stability Report показаны детали возникшей
проблемы.

Два меню Data Collector Sets и Reports выступают в роли удобного аналога SPA.
Так, в первом из них содержатся шаблоны коллекторов, которые могут быть
использованы с любой программой, предназначенной для сбора данных. Выполнив,
например, LAN Diagnostics или System Performance (то есть любой коллектор или
группу), в соответствующем подменю в Reports получим полный отчет.

Тюнинг системы

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

Перед внесением изменений сформулируем для себя несколько правил:

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

Среди советов встречаются такие, как отключение «лишних» сервисов и проверка
запланированных заданий, но в Win2k8 изначально запущено только то, что
действительно нужно. Поэтому эти советы больше актуальны для ранних версий
Windows.

Оптимизация сети

Сетевая подсистема в Win2k3/Win2k8 (как, впрочем, и в любой другой ОС)
является многоуровневой. Глубокий тюнинг следует производить на каждом уровне,
начиная от драйвера и NDIS (спецификация интерфейса сетевых драйверов) и
заканчивая уровнем приложений. Начнем «снизу».

Вызываем свойства адаптера и изучаем активные протоколы. Любой протокол
генерирует некоторый трафик, поэтому даже в небольшой сети путешествует гораздо
больше пакетов, чем нужно для ее нормального функционирования. Например,
адаптеру, который смотрит в интернет, часто ни к чему NetBEUI (да и с точки
зрения безопасности, это минус). Поэтому отключаем все лишнее, в том числе и
IPv6 (в нашей стране пока необходимости в нем нет). Параллельно включаем снифер
и отлавливаем «лишние» пакеты, определяя их источник. Если расположить более
быстрый или часто используемый протокол в начале списка, то это позволит
увеличить производительность.

Локальные файлы HOSTS (для TCP/IP) и LMHOSTS (NetBEUI), хранящие адреса и
имена систем, помогают уменьшить количество запросов на разрешение имен. Эти
настройки можно произвести как вручную, так и зайдя в свойства TCP/IP в
настройках сетевой карты, и затем выбрав Advanced. Распространять изменения в
этих файлах можно в небольших сетях вручную, а в AD - при помощи политик.
Присутствие DNS- и WINS-серверов также способно уменьшить количество лишних
задержек.

Кстати, новая концепция ролей в Win2k8 приносит свои плоды: в настройках Сети
после установки системы ничего лишнего не включено, а новые алгоритмы настройки
и оптимизации требуют меньше телодвижений со стороны администратора. Например,
автоматическая настройка TCP Receive Window Auto-Tuning динамически изменяет
размер принимающего буфера TCP, используемого для хранения входящих данных, тем
самым повышая пропускную способность, скажем, при передаче больших файлов на
высокоскоростных каналах (поэтому ключ реестра TcpWindowSize в Win2k8
игнорируется). Средство Compound TCP (CTCP) увеличивает количество одновременно
отправляемых данных - ну, и так далее. Впрочем, кое-что нам оставили и для
ручной настройки.

Нажав кнопку Configure в свойствах адаптера, получаем во вкладке Advanced
доступ к ряду настроек (их количество зависит от конкретного адаптера).
Например, для файлового и FTP сервера рекомендуется задействовать следующие
опции: IPv4, TCP и UDP Checksum offload, Segmentation offload и TCP offload
engine (TOE). Поддержка последнего включается следующим образом:

> netsh int tcp set global chimney = enabled

Для веб-сервера и сервера базы данных желательно активировать еще и
Receive-side scaling (RSS). Но если сетевой адаптер не справляется с нагрузкой,
- наоборот, пробуем по одному отключать все offload настройки. В Link Speed &
Duplex указывается режим работы адаптера (по умолчанию он выбирается
автоматически), а в Transmit/Receive Buffers - буфер приема и передачи. В целях
экономии ресурсов размер буфера по дефолту установлен в минимальное или среднее
значение. При больших нагрузках это чревато потерями пакетов. Если адаптер
позволяет вручную изменить размер буфера, то увеличиваем, не задумываясь.

Дисковая подсистема

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

Кое-что можно сделать и самому. По умолчанию файл подкачки равен 1.5 объема
ОЗУ и расположен на системном диске. Последний обычно сильно загружен, к тому же
подвержен фрагментации. Поэтому, если имеется несколько дисков, создаем файл
подкачки на каждом. Для этого в Control Panel System выбираем Advanced System
Setting и получаем знакомое окно System Properties («Свойства системы»).
Нажимаем во вкладке Advanced в поле Performance кнопку Setting, снова щелкаем
Advanced, а затем кнопку Change. В появившемся окне снимаем флажок «Automatically
manage paging file for all driver» и указываем, на каких дисках и разделах
следует создать файл подкачки. При этом следует помнить, что использование
нескольких разделов одного диска для файла подкачки, мягко говоря,
нецелесообразно. Своп лучше размещать на разделах с меньшей буквой, на которых,
как правило, скорость повыше.

По умолчанию Windows записывает данные блоками по 64 Кб, но жесткие диски и
приложения могут использовать блоки других размеров. Данные в этом случае
придется записывать на несколько секторов, что снижает производительность. В
состав Win2k8 и Win2k3 SP1 входит программа Diskpart, предназначенная для
создания разделов диска. С ее помощью можно задать другое смещение. Пользоваться
программой просто. Для запуска в командной строке набираем diskpart.exe. Далее
командой «List Disk» выводим список дисков, выбираем нужный диск - «Select Disk
1», создаем раздел «Create Partition Primary Align=64» и присваиваем ему букву
(«Assign Letter=D»). Помни, что Diskpart уничтожает данные, поэтому
предварительно создай резервную копию!

Также стоит отключить индексацию файлов для (якобы) быстрого поиска и
компрессию диска (если взведен флажок «Compress this drive to save disk space»).
И, конечно же, не забываем о периодической дефрагментации (Свойства диска -
Tools - Defragment Now). В подменю Shadow Copies находятся настройки теневых
копий. Если резервирование производится другими средствами, то для повышения
производительности их можно отключить или изменить алгоритм работы.

Не помешает знать и о некоторых параметрах реестра (они подходят и для
Win2k3). Так, параметр NumberOfRequests, зависимый от драйвера сетевой карты,
позволяет задать количество запросов, ускоряя работу за счет распараллеливания.
Драйвер сам устанавливает оптимальное значение, но рекомендуется установить его
в диапазоне от 32 до 96.

Установка в 0 ключа CountOperations позволит отключить некоторые счетчики,
что также повлияет на производительность в лучшую сторону:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Session Manager\I/O System\CountOperations

Установка в 1 (REG_DWORD) ключа DontVerifyRandomDrivers запрещает
тестирование и проверку некорректно работающих драйверов:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Session Manager\Memory
Management\DontVerifyRandomDrivers

В Win2k8 используется сложный алгоритм, индивидуально управляющий приоритетом
I/O. Если для экспериментов ты захочешь его отключить, установи в 0:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceClasses\ GUID>\DeviceParameters\Classpnp\IdlePrioritySupported\I/O Priorities

Чтобы запретить обновление даты последнего обращения к файлу, устанавливаем в
1 (REG_DWORD) ключ:

Это только основные параметры. А подробную информацию по настройке дисковой
подсистемы можно найти в документе «Disk Subsystem Performance Analysis for
Windows» на сайте Microsoft.

Точность хирурга

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

date

01.09.2021

directory

Hyper-V, PowerShell, Windows Server 2016, Windows Server 2019

comments

комментариев 11

Несколько раз встречался с тем, что скорость копирования файлов по сети с/на виртуальные машины на Hyper-V в Windows Server 2019 намного ниже, чем в ВМ аналогичной конфигурации на хосте с Windows Server 2016. В некоторых тестах скорость записи/чтения данных по сети на ВМ в Windows Server 2019 почти в три раза ниже, чем в WS2016 (тестировалось копирование по SMB, SSH/SCP). Эта статья не претендует на абсолютную истину, но в ней я попытался собрать различные методики улучшения производительности сети в виртуальных машинах Hyper-V на Windows Server 2019 (и последних билдах Windows 10).

Receive Segment Coalescing в Hyper-V 2019

В первую очередь нужно вспомнить про технологии Receive Segment Coalescing (RSC), которая появилась в Hyper-V на Windows Server 2019/2022 (и в Windows 10 начиная с билда 1809). Receive Segment Coalescing используется на уровне виртуального коммутатора (vSwitch), позволяет снизить нагрузку на CPU и увеличить пропускную способность сети за счет объединения нескольких TCP сегментов в меньшее количество более крупных сегментов. Увеличение производительности сети достигается за счет того, что несколько больших сегментов обрабатывают быстрее множества мелких.

В предыдущих версиях Hyper-V на Windows Server 2016/2012R2 поддерживалась только аппаратная версия Receive Segment Coalescing на уровне сетевой карты.

Наличие включенной поддержки RSC часто бывает источником дополнительной сетевой задержки в некоторых комбинациях железа.

Проблема проявляется как в полноценной Windows Server 2019 с графическим интерфейсом, так и в бесплатной редакции Windows Hyper-V Server.

По умолчанию в Windows Server 2019 RSC включен для всех внешних (External) vSwitches.

Проверить, включен ли RSC для виртуальных коммутаторов можно командой:

Get-VMSwitch | Select-Object *RSC*

Можно запретить использовать RSC для IPv4 трафика на уровне клиентского сетевого адаптера:

Disable-NetAdapterRsc -Name "Ethernet" -IPv4

Проверьте, увеличится ли скорость копирования в ВМ на Hyper-V при отключении RSC. Если скорость сети увеличилась, можно отключить RSC на виртуальном коммутаторе, к которому подключена ВМ.

Пропускную способность сети можно замерить с помощью утилиты iperf.

Чтобы отключить программный RSC для определенного виртуального коммутатора, выполните команду:

Set-VMSwitch -Name vSwitchName -EnableSoftwareRsc $false

отключить EnableSoftwareRsc в параметрах виртуального коммутатора в Hyper-V Windows Server 2019

Включить/отключить RSC можно на лету, это не повлияет на активные подключения.

Либо можно полностью отключить RSC на хосте:

netsh int tcp set global rsc=disabled

Режим VMQ в драйвере сетевого адаптера

В некоторых случаях наличие включенной опции VMQ (Virtual Machine Queue) в драйвере сетевого адаптера физического хоста Hyper-V может привести к плохой производительности сети в виртуальных машинах Hyper-V. Связано это с тем, что VMQ это аппаратная функция, и, если она не поддерживается железом, но включена в драйвере это вызывает потерю пакетов и увеличивает сетевую задержку. Эта проблема характерна для сетевых карточек Broadcom Gigabit и встречается во всех версиях Hyper-V на Windows 2012 R2/2016/2019.

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

Вы можете отключить VMQ в свойствах драйвера сетевого адаптера.

Virtual Machine Queue в свойствах драйвера сетевой карты broadcom

Либо вы можете вывести список сетевых адаптеров с поддержкой VMQ и их статус с помощью PowerShell:

Чтобы отключить VMQ для определенного адаптера, выполните команду (сетевой адаптер будет недоступен в течении пары секунд):

Set-NetAdapterVmq -Name “NICName” -Enabled $False

Get-NetAdapterVmq отключить VMQ (Virtual Machine Queue) для сетевых адаптеров

После отключения VMQ лучше перезагрузить хост и проверить сетевую производительность.

Оптимизация параметров протокола TCP для Windows Server 2019 Hyper-V

Сохраните текущие настройки TCP на хосте Hyper-V и примените новые настройки, которые сделают настройки протокола TCP в Windows Server 2019 максимально похожими на Windows Server 2016.

Сохраните текущие настройки:

Get-NetTCPSetting -SettingName Datacenter,DatacenterCustom,InternetCustom,Internet|select SettingName,CongestionProvider,CwndRestart,ForceWS|Export-csv c:\ps\nettcp_backup.csv

Новые настройки Get-NetTCPSetting в Windows Server 2019

Следующие настройки нужно применять только на Windows Server 2019 или Hyper-V 2019.

Примените новые настройка для LAN сети:

Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CongestionProvider DCTCP
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CwndRestart True
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -ForceWS Disabled

Set-NetTCPSetting -SettingName InternetCustom,Internet -CongestionProvider CTCP
Set-NetTCPSetting -SettingName InternetCustom,Internet -DelayedAckTimeoutMs 50
Set-NetTCPSetting -SettingName InternetCustom,Internet -ForceWS Disabled

Отключите методики оптимизации сетевого RSS и RSC на уровне стека TCP:

netsh int tcp show global
netsh int tcp set global RSS=Disabled
netsh int tcp set global RSC=Disabled

или на уровне сетевых адаптеров:

Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Recv Segment Coalescing (IPv4)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Recv Segment Coalescing (IPv6)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Receive Side Scaling" -DisplayValue "Disabled" –NoRestart

Отключите vRSS для всех ВМ:

Get-VM | Set-VMNetworkAdapter -VrssEnabled $FALSE

Отключите функцию Large Send Offload (LSO) на сетевых картах:

Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Large Send Offload Version 2 (IPv4)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Large Send Offload Version 2 (IPv6)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Restart-NetAdapter

Также эти опции можно отключить в свойствах сетевого адаптера на вкладке Advanced:
  • Recv Segment Coalescing (IPv4/IPv6) = Disabled
  • Large Send Offload V2 (IPv4/IPv6) = Disabled

отключить Large Send Offload V2

Данные настройки стека TCP максимально приблизят настройки сетевых протоколов Windows Server 2019 к предыдущим версиям Windows Server.

Windows pure performance

Запуск Resource Monitor под Windows Server

Наиболее простой способ запуска это в окне Run (команда Win + R) набрать комманду perfmon /res.

Windows Server Resource Monitor Run

Task Manager Performance

Вкладка Performance дает общую информацию о системе, которая может быть также полезна. Можно понять загрузка какого ресурса близка к 100%: памяти, CPU или локальной сети.

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

Очень часто поиск причины тормозов сервера начинают с проверки загруженности дисковой системы. Ниже представлено окно Resource Monitor на вкладе Disk.

HDD - частая причина почему тормозит сервер

На вкладке Disk Activity показана загруженность в процентах. Если загрузка, близка к 100%, то скорее всего дисковая система является причиной низкой производительности системы. Щелкая по заголовку Total (B / Sec) можно отсортировать файлы с которыми в данный момент роботает система по объему чтетния и записи на диск. Наиболее загруженный файл и будет причиной тормозов системы. Зная какой файл создает высокую нагрузку гораздо легче понять, какой процесс нагружает систему. Если это какой-то системный файл начинающийся с C:/Windows, то есть смысл воспользоваться поисковой системой, чтобы понять, какой системной службе принадлежит данный файл.

Следущей причиной может стать Сетевая нагрузка. Особенно это актуально для VPS серверов. В случае если вы подключаетесь по RDP то сетевый задержки могут ощущаться как тормоза сервера. Переходим на вкладку Network:

Сетевая нагрузка возможная причина тормозов сервера

В первую очередь обращаем внимание на общую нагрузку сети. Если она близка к 100% процентам, то скорее всего проблема в сети. На вкладке Processes with Network Activity и TCP Connections мы можем найти название процесса, который нагружает сеть. К сожалению, системные и серверный службы запускаются при помощи системного файла svchost.exe, и часто непонятно какая именно служба загружает сеть. Но если, вы видите, что причина в svchost.exe, то причину нужно искать в службах Windows.

Бывает так, что вы запустили слишком много программ и у вас банально не хватает оперативной памяти. В этом случае нам может помочь вклада Memory. Иформация по процессам аналогична вкладке Network:

Resource Monitor Memory

Самый простой случаей это загрузка CPU. Ее можно посмотреть на вкладке как на вкладке CPU так и в обычном Task Manager:

Читайте также: