Я только что попробовал скопировать файл через cifs (общий доступ к файлам Windows) между сервером 2003 R2 и новым сервером 2008 SP1, и скорость оказалась ужасной.
Это файл размером 300 МБ, который передается около 30 минут. Я получаю около 1-2 Мбит/с, и это на локальном коммутаторе.
Я попробовал инициировать передачу с обоих серверов, но результат оказался одинаковым.
Копирование с сервера 2003 на другой сервер 2003 занимает менее 1 минуты, так что проблема явно в сервере 2008.
Еще более странное поведение заключается в том, что если я одновременно копирую другой файл с сервера 2003 на другой сервер 2003, скорость передачи данных с сервера 2008 резко возрастает (примерно в 10 раз, но все равно остается низкой).
Через RDP-drivesharing я получаю полную скорость VPN, около 20 Мбит. Никакие другие сервисы, похоже, не страдают от задержек.
Я видел сообщение о том, что разгрузка TCP вызывает проблемы в Win2008. Может ли это быть связано?
решение1
Убедитесь, что сервер 2008 работает правильно сам по себе. Попробуйте перенести файлы между ним и другим сервером 2008, или, если таковой недоступен, рабочей станцией Vista, они используют одну и ту же версию CIFS.
Я наблюдал похожее поведение при передаче файлов, когда возникало несоответствие скорости/дуплексного режима между сетевой картой и коммутатором, иногда из-за проблем с автоопределением, а иногда из-за неправильной настройки одного или другого, или обоих.
решение2
Вы можете попробовать отключить автонастройку TCP:
netsh interface tcp set global autotuninglevel=disabled
Если это не поможет, включите его снова:
netsh interface tcp set global autotuninglevel=normal
Автонастройка TCP — это новая функция в стеке TCP/IP Vista и Windows 2008. Объем данных, которые вы можете отправить через TCP/IP, зависит (помимо прочего) от размера окна приема. В предыдущих версиях Windows размер окна приема был ограничен 64 КБ. При автонастройке размер окна динамически изменяется в зависимости от емкости и скорости соединения. Идея заключается в том, что это ускорит передачу данных.
Проблема в том, что эта функция может фактически привести к снижению скорости передачи данных, если клиентская операционная система или сетевое оборудование не поддерживают эту функцию должным образом (как описано в RFC 1323, TCP Extensions for High Performance).
В любом случае, возможно, проблема не в этом, но попробовать стоит.
решение3
Я только что решил похожую проблему в своей сети. Машина с Windows 2003 Server получалаужасный(~20 Кб/с) скорость чтения из общих папок на новом компьютере с Windows 2008 R2 (но как ни странно, в 2003 >> 2008 все было нормально, ~50+ Мб/с).
Некоторые из вещей, которые я пробовал...
- Настройка
autotuninglevel=disabled
, как предложено выше - Отключение SMB 2, как описаноздесь
- Тонкая настройка параметров дуплекса и управления потоком адаптеров, в основном на основеэта почтано предлагается в ряде мест
Ничто из этого не имело (положительного) эффекта.
Для меня решением оказалось отключение TCP-разгрузки (описаноздесь) добавив следующие ключи реестра...
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Value = DisableTaskOffload
Type = DWORD
Data = 1
Value = EnableTCPChimney
Type = DWORD
Data = 0
Value = EnableTCPA
Type = DWORD
Data = 0
Value = EnableRSS
Type = DWORD
Data = 0
После перезапуска все передачи были запущены.
Из моего (ограниченного) понимания проблемы, она возникает только с определенными моделями сетевых карт (у меня Intel 82578DC) в коробке под управлением 2008 или Win 7, которая общается с коробкой под управлением 2003 или XP. В моем случае коробка 2003 была виртуальной машиной, работающей на VMware Server 2.0.2 (но я не знаю, имеет ли это значение).
Надеюсь, это кому-то поможет!
решение4
Моя первая догадка — проблема с оборудованием. Попробуйте использовать FTP или HTTP для передачи файла и посмотрите, будет ли это также медленно.
Дж.Р.