
У нас возникли серьезные проблемы с производительностью Server 2019. Производительность чтения и записи очень низкая по сравнению с Server 2016. Мы установили несколько серверов на объектах клиентов для замены старых серверов, и все клиенты жаловались на медленное открытие файлов с сервера.
Мы установили тестовый сервер в нашем офисе, измерили скорость чтения и записи и обнаружили огромную разницу между 2019 и 2016 годами.
Мы установили виртуальные машины 2016 и 2019 годов на хост 2019 года с помощью Hyper V и использовали тест скорости локальной сети для измерения скорости чтения/записи для виртуальных машин и хоста.
Сервер представляет собой Dell PowerEdge с 8 дисками по 15 КБ, сконфигурированным в RAID 10 с использованием четырехпортовой сетевой карты Intel.
Скорость чтения/записи виртуальной машины 2016 года составляет 600 Мбит/с при записи и 780 Мбит/с при чтении.
Скорость чтения/записи виртуальной машины 2019 года составляет 220 Мбит/с при записи и 115 Мбит/с при чтении.
Обе виртуальные машины используют один и тот же виртуальный коммутатор, настроены абсолютно одинаково и находятся на одном и том же виртуальном диске, единственное отличие — это операционная система, которая полностью обновлена на обеих виртуальных машинах.
Мы протестировали это на серверах с различными характеристиками на объектах клиентов и везде обнаружили одинаковые результаты: 2019 год намного медленнее, чем 2016 год.
Все BIOS и драйверы являются последними версиями от Dell.
Это не относится к одному серверу, это происходит на нескольких серверах, некоторые из которых заменили старые серверы SBS 2011 и все же работают медленнее, чем старые коробки SBS. Кто-нибудь еще нашел эту проблему?
решение1
Вы можете видеть это из-за Receive Segment Coalescing (RSC). Короче говоря, RSC — это агрегация сегментов TCP, которая объединяет сегменты для обработки более крупных сегментов вместо нескольких мелких сегментов для эффективности. Это было введено как изменение конфигурации по умолчанию для Windows Server 2019 и стало источником проблем, похожих на ваши, в других средах.
Вы можете отключить RSC клиента для трафика IPv4 с помощью PowerShell:
Disable-NetAdapterRsc -Name $nic -IPv4
.Текущий статус RSC Hyper-V vSwitch можно проверить с помощью PowerShell:
Get-VMSwitch -Name $vSwitch | Select *RSC*
.Вы можете полностью отключить RSC Hyper-V vSwitch с помощью PowerShell:.
Set-VMSwitch -Name $vSwitch -EnableSoftwareRsc:$FALSE
Это не повлияет на существующие подключения vSwitch.
Пункты № 2 и № 3 требуют, чтобы у вас был доступ к модулям PowerShell Hyper-V и соответствующие разрешения на управление Hyper-V. Поскольку вы упомянули, что видите это на нескольких машинах на Hyper-V vSwitch, вероятно, пункт № 3 — это то, где вы можете найти облегчение. Я предоставил вам справочный материалздесьиздесь.
решение2
Не могу поверить, что Windows 2019 все еще немного неисправна после всего этого времени, но я рекомендую вам попробовать настроить следующие параметры и провести повторное тестирование:
Локальная сеть
Set-NetTCPSetting -SettingName "DatacenterCustom" -CongestionProvider DCTCP
Set-NetTCPSetting -SettingName "DatacenterCustom" -CwndRestart True
Set-NetTCPSetting -SettingName "DatacenterCustom" -ForceWS Disabled
Set-NetTCPSetting -SettingName "Datacenter" -CongestionProvider DCTCP
Set-NetTCPSetting -SettingName "Datacenter" -CwndRestart True
Set-NetTCPSetting -SettingName "Datacenter" -ForceWS Disabled
WAN
Set-NetTCPSetting -SettingName "InternetCustom" -CongestionProvider CTCP
Set-NetTCPSetting -SettingName "InternetCustom" -DelayedAckTimeoutMs 50
Set-NetTCPSetting -SettingName "InternetCustom" -ForceWS Disabled
Set-NetTCPSetting -SettingName "Internet" -CongestionProvider CTCP
Set-NetTCPSetting -SettingName "Internet" -DelayedAckTimeoutMs 50
Set-NetTCPSetting -SettingName "Internet" -ForceWS Disabled
Это перенастраивает 2019 год так, чтобы он вел себя немного как 2016 год.
решение3
Собирался прокомментировать, но пока не имею репутации.
Я столкнулся с этой проблемой на новом сервере Dell T440, на котором в качестве хостовой ОС работала Server 2019 с ролью Hyper-V, а также на тестовой виртуальной машине (Win10), которую я развернул.
С моего проводного ноутбука - Lenovo P52S - работающего под управлением Win11 я видел среднюю скорость записи 500 Мб, но между 90 и 220 Мб чтения с LAN Speed Test Lite на тестовую виртуальную машину. Всегда использовал файл размером 20 Мб.
Что касается самого хоста, то с помощью LAN Speed Test Lite я увидел среднюю скорость записи 500 Мбит/с и чтения 500 Мбит/с+, так что с моим ноутбуком все в порядке (или я так думал).
Я отключил RSC на виртуальном коммутаторе, но это не дало мне никаких улучшений, все еще плохая производительность чтения между ноутбуком и VM, даже после перезагрузки HOST, VM и ноутбука. Я снова включил RSC.
Сегодня утром я откопал старый ноутбук MSI Win10 и попробовал. LAN Speed Test Lite выдал 500 Мбит/с+ записи, 700 Мбит/с+ чтения с первой попытки. Ух ты! Так это была моя машина? Провел еще несколько тестов и увидел до 1600 Мбит/с на чтении. Затем я провел еще двадцать последовательных тестов и заметил, что в 4 из 20 тестов скорость чтения оказалась ниже (примерно вдвое ниже), чем скорость записи.
Затем я (снова) отключил RSC на виртуальном коммутаторе и провел еще 20 тестов. Все 20 вернули последовательные результаты чтения > записи, в среднем 700-800 на чтение, 450-600 на запись.
Снова включил RSC на виртуальном коммутаторе, и 5 из двадцати тестов на этот раз показали медленную скорость чтения. Для меня лучше иметь стабильные результаты, чем чтение на скорости 1600 Мб/с+, но на скорости 220 Мб/с, поэтому RSC останется выключенным.
Возвращаясь к моему ноутбуку P52s, все те же плохие результаты, но это, похоже, связано с сетевой картой Intel, так как при использовании адаптера USB->Gigabit ethernet с чипсетом Realtek результаты скорости зеркальны тем, что видны на ноутбуке MSI. Я упоминаю это как OP, поэтому нет никакой выгоды с отключенным RSC, как я сделал изначально.
Ваше здоровье
Майк