Еще прошлой весной, поставив на свой ПК Windows 8, я обнаружил, что скорость копирования по сети с нее была очень маленькая. Несколько килобайт в секунду. Изредка скорость поднималась до нормальных значений, но это было редко.
Осенью я поставил на комп новейшую Windows 8.1. И под ней было то же самое. Очень низкая скорость копирования по сети с моего компьютера.
Все это время проблема откладывалась мной в долгий ящик. Обе версии Windows были лицензионными, со всеми обновлениями.
Недавно случайно заглянув в свои старый блокнот в разделе "Тормоза сети Windows 7, Vista" обнаружил решение.
Осенью я поставил на комп новейшую Windows 8.1. И под ней было то же самое. Очень низкая скорость копирования по сети с моего компьютера.
Все это время проблема откладывалась мной в долгий ящик. Обе версии Windows были лицензионными, со всеми обновлениями.
Недавно случайно заглянув в свои старый блокнот в разделе "Тормоза сети Windows 7, Vista" обнаружил решение.
Теория
Проблема оказалась в реализации протокола TCP/IP. Начиная с Windows Vista были внедрены новые возможности автоматической конфигурации протокола TCP/IP. В процессе передачи файлов по сети Windows сама подстраивает параметры протокола исходя из реальной скорости связи. Оказалось, что на практике это часто тормозит скорость работы сети.
В данной ситуации виновником тормозов оказалась возможность автонастройки окна приема ("window autotuning" по буржуйски). Больше теории можно посмотреть в статье Отключаем Recieve Window Auto-Tuning в Windows 7/Server 2008 и обсуждение в форуме медленно работает сеть на Windows 7. Особенно ответ Alekseev Sergey от 23.02.2012 20:33
Решение оказалось в команде:Решение
netsh interface tcp set global autotuninglevel=
Где после символа "равно" могут стоять параметры normal, restricted, highlyrestricted, disabled. Я не экспериментировал с ними, а сразу отключил автонастройку "netsh interface tcp set global autotuninglevel=disabled". И сразу скорость стала нормальной.
Посмотреть текущее значение этого параметра можно командой "netsh interface tcp show global". У меня эта команда выдала:
Где после символа "равно" могут стоять параметры normal, restricted, highlyrestricted, disabled. Я не экспериментировал с ними, а сразу отключил автонастройку "netsh interface tcp set global autotuninglevel=disabled". И сразу скорость стала нормальной.
Посмотреть текущее значение этого параметра можно командой "netsh interface tcp show global". У меня эта команда выдала:
Запрос активного состояния...
Глобальные параметры TCP
----------------------------------------------
Состояние масштабирования на стороне приема: enabled
Состояние разгрузки Chimney: disabled
Состояние NetDMA: disabled
Прямой доступ к кэшу (DCA): disabled
Уровень автонастройки окна получения: disabled
Поставщик дополнительного компонента контроля перегрузки: none
Мощность ECN: disabled
Метки времени RFC 1323: disabled
Начальное RTO: 3000
Состояние объединения сегментов приема: disabled
Устойчивость RTT без SACK: disabled
Максимум повторных передач SYN: 2
Где "Уровень автонастройки окна получения" показывает то что мне надо.
Комментариев нет:
Отправить комментарий