Проблема была вызвана:
Поскольку управление потоком было отключено, Windows отправляла пакеты размером до размера окна одним пакетом, используя соединение 1 Гбит / с. Поскольку клиент со скоростью 100 Мбит / с получает пакеты намного медленнее, почти все данные вплоть до размера окна необходимо буферизовать с помощью коммутатора. Поскольку этот дешевый коммутатор имеет очень маленькие буферы (размеры буфера даже не указаны в спецификациях, но он должен быть меньше 64 КБ на порт, так как даже отключение масштабирования окна не помогло), ему пришлось отбрасывать лишние пакеты. Потеря пакетов вызвала задержку около 0,25 с, видимую на графике. Но алгоритм предотвращения перегрузки, использование в файловых службах или их отсутствие не уменьшало размер окна TCP, поэтому следующий пакет пакетов не был меньше - он снова и снова перегружал соединение, вызывая коллапс перегрузки .
Стандартные соединения TCP ( не файловые службы) должны использовать другой алгоритм управления перегрузкой и не перегружаться повторно. Я полагаю, что обработка файловых служб с помощью стека TCP Windows помогает в тестах, например, против Samba.
Итак, решения следующие:
Включить управление потоком в свойствах сетевого адаптера. Это не идеальное решение, поскольку любая передача файловых служб клиенту со скоростью 100 Мбит / с также замедлит одновременные передачи клиентов с 1 Гбит / с до скорости менее 100 Мбит / с.
Или подключите клиентов со 100 Мбит / с к коммутатору корпоративного класса с гораздо большими буферами . Это решение, которое я использовал. У меня есть коммутатор "3Com SuperStack 3 3300 SM" 10-летней давности с одним оптоволоконным гигабитным Ethernet-портом MT-RJ 1000Base-SX. Я купил модуль Cisco 1000BASE-SX mini-Gbic (MGBSX1) с портом LC для своего гигабитного коммутатора Linksys и многомодового оптоволоконного патч-корда LC / MT-RJ (около 150 долларов за оба) и подключил всех клиентов со скоростью 100 Мбит / с. к этому коммутатору 3com. Я также включил управление потоком, но оно не должно вызывать замедления при отсутствии подключенного клиента со скоростью 100 Мбит / с.
Спасибо SpacemanSpiff , чьи комментарии помогли решить эту проблему.
Я купил модуль Cisco 1000BASE-SX mini-Gbic (MGBSX1) с портом LC для своего гигабитного коммутатора Linksys и многомодового оптоволоконного патч-корда LC / MT-RJ (около 150 долларов за оба) и подключил всех клиентов со скоростью 100 Мбит / с. к этому коммутатору 3com. Я также включил управление потоком, но оно не должно вызывать замедления при отсутствии подключенного клиента со скоростью 100 Мбит / с.Спасибо SpacemanSpiff , чьи комментарии помогли решить эту проблему.
Я купил модуль Cisco 1000BASE-SX mini-Gbic (MGBSX1) с портом LC для своего гигабитного коммутатора Linksys и многомодового оптоволоконного патч-корда LC / MT-RJ (около 150 долларов за оба) и подключил всех клиентов со скоростью 100 Мбит / с. к этому коммутатору 3com. Я также включил управление потоком, но оно не должно вызывать замедления при отсутствии подключенного клиента со скоростью 100 Мбит / с.Спасибо SpacemanSpiff , чьи комментарии помогли решить эту проблему.
Windows Server включали SMB, Подписывающийся? Подписание SMB добавляет замедление и включено по умолчанию на Контроллерах домена.
Это могла бы быть карта/переключатель на 100 Мбит/с? Вы упоминаете, что тот же клиент работает правильно, когда это находится на 1 Гбит/с.
Чувствует себя подобно сетевой проблеме низшего уровня. Мои предположения:
Вы могли попытаться скопировать через esetutil (если у Вас есть Exchange Server там),
Проверьте это: http://blogs.technet.com/b/askperf/archive/2007/05/08/slow-large-file-copy-issues.aspx
Это могло быть тестом при копировании больших файлов от клиента к серверу или наоборот протестировать, если esetutil получают лучшую производительность.
также у меня были подобные проблемы с Сервером Windows 2008 и Linux с опцией под названием NetDMA (последний раздел). Это решило мои проблемы (был Сетевой адаптер Broadcom с объединением в команду),
Как включить и отключить NetDMA в Windows Server 2008, Чтобы включить или отключить NetDMA, выполните эти шаги: Нажмите Start, нажмите Run, введите regedit и затем нажмите "OK". Найдите следующий подраздел реестра и затем нажмите его: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters Дважды щелкают по ключу реестра EnableTCPA. Отметьте, не Существует ли этот ключ реестра, щелкните правой кнопкой по Parameters, укажите на Новый, нажмите DWORD Value, введите EnableTCPA и затем нажмите ENTER. Включить NetDMA, тип 1 в поле данных Значения, и затем нажать "OK". Отключить NetDMA, тип 0 в поле данных Значения, и затем нажать "OK". Если ключ реестра EnableTCPA не существует, добавьте функциональность NetDMA. Сторонние продукты, которые обсуждает эта статья, произведены компаниями, которые независимы от Microsoft. Microsoft не дает гарантии, подразумеваемой или иначе, о производительности или надежности их продукт
от базы знаний Microsoft 951037 поддержки
Check if the BIOS of your servers/clients has a "CPU C State" parameter (probably inside the Power Saving category). If present, try setting that parameter to DISABLE.