Начиная с Windows 2008 R2 MS придумывает всякие разные штуки для оптимизации работы сети. Происходит это за счет перераспределения выполняемых операций между CPU и сетевой карточкой.
Некоторые из них описаны здесь.
При использовании данных фич на реальном железе теоретически должен наблюдаться прирост производительности системы и снижение загрузки центрального процессора.
Рассмотрим один из таких параметров - TCP Chimney Offload.
В случае с активированным TCP Chimney Offload происходит передача ряда функций обработки TCP трафика от CPU к сетевому адаптеру, что, естественно, в случае с VM совсем не правильно.
В моем случае проблема проявилась на VM c W2k8r2 (vmxnet3), app сервере с множественными пользовательскими подключениями (200+). Со стороны пользователя это выглядело как постоянные разрывы сессий и ошибки при передаче данных.
По умолчанию параметр TCP Chimney Offload в Windows 2008 R2 включен. Вариантов отключения два:
1. Правка в ручную ключа реестра:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip - DisableTaskOffload=1
2. netsh int tcp set global chimney=disabled
С выключением параметра проблемы с пользовательскими подключениями исчезли. Выключил данный параметр еще на ряде VM - новых проблем не словил. Внес данные изменения в эталонный шаблон.
Спасибо за разьяснения на русском. Столкнулся с таким же явлением на ВМ на HyperV на 2012 сервере. Гостевая ОСь - Win Srv 2008R2. Выключил, пока понаблюдаю. Нагрузка на ЦПУ сильно возрастает после выключения TCP Chimney Offload?
ОтветитьУдалить