Я хочу настроить стек Windows 7 TCP на скорость в локальной сети.
Немного справочной информации: у меня установлен Citrix XenServer с Windows 2008R2, Windows 7 и Debian Lenny с ядром Citrix, на машинах Windows установлены инструменты, iperf
серверный процесс выполняется на другом хосте, в том числе Debian Lenny. В противном случае серверы простаивают, тесты повторялись несколько раз для подтверждения результатов.
Хотя тестирование с iperf
2008R2 может достигать около 600-700 Мбит / с без какой-либо настройки, но я не могу найти руководство или набор параметров, которые позволят Windows 7 достичь чего-либо более 150 Мбит / с без изменения размера окна TCP с использованием -w
параметра to iperf
.
Я попытался с помощью netsh
autotuining
к disabled
, experimental
, normal
и highlyrestricted
- без изменений. Изменение congestionprovider
ничего не делает, так же как rss
и chimney
.
Установка всех доступных настроек на те же значения, что и на хосте Windows 2008R2, не помогает.
Обобщить:
- Настройки Windows 2008R2 по умолчанию: 600-700 Мбит / с
- Debian, настройки по умолчанию: 600 Мбит / с
- Настройки Windows 7 по умолчанию: 120 Мбит / с
- Windows 7 по умолчанию
iperf -w 65536
: 400-500 Мбит / с
Несмотря на пропускную способность 400 Мбит / с, я виню в этом дрянную сетевую карту Realtek на хосте XenServer (я могу сделать ~ 980 Мбит / с с моего ноутбука на сервер iperf), но это не объясняет, почему Windows 7 не может добиться хорошей производительности без ручной настройки размера окна в уровень приложения.
Итак, как настроить Windows 7?
источник
Это может быть другой сетевой драйвер в Windows 2008R2 и Windows 7. Кроме того, всегда ли xenserver предоставляет один и тот же виртуальный ник для Windows 2008R2 и Windows 7? Потому что, если он отличается, будет загружен другой драйвер.
Там могут быть некоторые различия в производительности.
РЕДАКТИРОВАТЬ: Я только что вспомнил, что Windows 7 по умолчанию имеет очень маленькие буферы отправки / получения. В некоторых приложениях, которые я разрабатывал, я обнаружил, что под Windows 7 это было что-то жалкое, вроде 8 КБ. Под Ubuntu Linux это около 120 КБ. Вы можете прочитать где-нибудь, что ограничение составляет 64 КБ. Это на самом деле неправильно для более поздних версий Windows. Я обнаружил, что он может быть установлен даже до 1 МБ и выше. Хотя небольшое увеличение производительности будет заметно, когда оно будет таким большим.
Эта ссылка предоставляет некоторые параметры настройки tcp в реестре, которые применяются для всей системы. Имейте в виду, что многие из этих параметров могут быть переопределены самими приложениями.
http://www.psc.edu/networking/projects/tcptune/ http://www.psc.edu/networking/projects/tcptune/OStune/winxp/winxp_stepbystep.html
Попробуйте увеличить размер окна и отправить / получить буферы. Надеемся, что эти параметры реестра в ссылке все еще применяются в Windows 7.
источник
MTU? http://networking.nitecruzr.net/2007/11/setting-mtu-in-windows-vista.html
источник
Автоматическая настройка TCP (которую вы уже исключили), MTU, к которому уже обращались, и MMCS (планирование классов мультимедиа), как правило, являются большими отличиями. Поскольку MMCS еще не решена, попытайтесь отключить ее.
Убедитесь, что автоматическое масштабирование окна tcp отключено, если вы находитесь на скорости локальной сети или около нее.
Инструкции доступны здесь: http://smallvoid.com/article/winnt-services-mmcss.html
источник
Вы не должны видеть драйвер Realtek внутри Windows как виртуальную машину на Citrix XenServer. Если вы это сделаете, это означает, что у вас не установлен XenTools. Сетевая карта Realtek, которую вы видите, является эмулированной, предоставляемой службой QEMU внутри Dom 0 (домен 0). После установки ОС Windows, прежде чем делать что-либо еще, особенно установку приложения, вам необходимо установить XenTools. Кроме того, скорость жестко задана после установки XenTools (как отмечено в Руководстве пользователя виртуальной машины), поскольку на виртуальном устройстве нет ограничений по скорости.
источник