Какова типичная производительность Windows File Sharing (SMB) в гигабитной сети Ethernet?
Недавно я настроил общий доступ к файлам Windows через гигабитную сеть Ethernet (я не использую гигантские кадры) с сервером Samba и клиентом Windows Vista. Я сделал несколько копий файлов, но максимальная пропускная способность, которую я вижу, составляет 20 МБ / с (мегабайт, а не мегабит), что составляет около 15% от теоретического максимума 125 МБ / с для сети. Сервер имеет RAID-массив, который может обрабатывать около 75 МБ / с (узким местом является шина PCI), а клиент может обрабатывать около 40 МБ / с при копировании с диска на диск.
Я должен добавить, что в то время в сети не было другого трафика.
Я понимаю, что никогда не получу теоретический максимум, но я не думал, что это будет так плохо.
Какова типичная производительность Windows File Sharing (SMB) в гигабитной сети Ethernet?
Бонусные баллы: что я могу настроить (помимо использования гигантских кадров), чтобы сделать это быстрее?
3 ответа
Качество ваших сетевых карт, коммутаторов и кабелей может оказать влияние. Возможно, стоит поискать обзоры сетевых адаптеров и переключателей, которые вы используете, чтобы узнать, сообщают ли другие люди о том, что они работают не слишком хорошо. Я уверен, что встроенные сетевые платы хуже, чем Gbit-передачи, хотя, по моему опыту, это, кажется, не имеет большого значения, если таковое вообще имеется, в моей среде.
Для справки, я только что установил новые коммутаторы Gbit в нашем офисе (заменив старые 100Mbit коммутаторы), и большие передачи SMB выполняются со скоростью, близкой (но меньше), 30Mbyte/sec между каждой комбинацией протестированных мной машин. Я только что провел быстрый тест с netcat между двумя машинами и получил схожие результаты, поэтому я не думаю, что SMB является узким местом. Две машины, которые я только что протестировал, имеют два переключателя между ними, которые могут иметь эффект, но я думаю, что этот эффект минимален, учитывая, насколько близки цифры передачи SMB к машине на одном и том же переключателе.
Лучшая скорость передачи данных, которую я видел в сети Gbit, была немного ниже 50 Мбайт / с. Это происходило при передаче образа диска с одного компьютера в файл на другом (для целей преобразования в виртуальный диск VMWare. В этом случае две машины были подключены через короткий перекрестный кабель, а не через коммутатор. По совпадению). одна из рассматриваемых машин была одной из тех машин, которые я только что протестировал и получил ~29 Мбайт / с - наиболее вероятным виновником основного узкого места в моем случае является, вероятно, 8-летняя проводка в здании, которая могла быть выполнена по быстрому (и столь же ненаучному) тесту в моей маленькой домашней сети скорость передачи данных превышает 35 Мбайт / с, копирование файла из общего ресурса Samba в Windows и 25 Мбайт / с в другом направлении (я не уверен почему существует расхождение, так как в обоих случаях копия управлялась с помощью теракопии на коробке с Windows - мне, возможно, придется исследовать это позже, позже.
Jumbo-кадры будут иметь значение для массовых передач, поэтому я предлагаю вам попробовать, если все ваш комплект поддерживает их должным образом.
Короче говоря, исходя из моего анекдотического опыта, ваши 20 Мбайт / с немного медленны, но не так массово. Все мои установки Windows и Samba практически не настроены, поэтому я подозреваю, что ваше оборудование / проводка - это разница между тем, что я вижу, и тем, что вы видите.
редактировать
Конечно, через пять лет после этого ответа аппаратное и программное обеспечение пошло дальше. Я часто вижу скорость передачи более 90 МБ / с на машинах с сетью Gbit, даже с дешевым комплектом. Мой домашний мультимедийный / резервный / другой сервер, кажется, ограничен более чем 60 для массовой передачи, но это похоже на то, что samba привязана к процессору на одном ядре аппаратного обеспечения коробки.
Ааа... для сервера важно понять, что скрывается под капотом. Поскольку ему уже два года, я думаю, он уже решил это. Однако для потомков или для кого-то с подобной проблемой, что он, вероятно, столкнулся с этим
(Размер окна TCP * 8 бит / RTT в миллисекундах) = максимальная пропускная способность TCP в бит / с
Хотя у вас может быть гигабитная сеть, один поток TCP вряд ли сможет достичь такого высокого уровня.
Вот простая таблица, предполагающая, что у вас по умолчанию размер окна 65535Byte TCP в Vista
RTT 10 мс => пропускная способность TCP = 52428000 бит / с = 52 Мбит / с
RTT 20 мс => пропускная способность TCP = 26214000 бит / с = 26 Мбит / с
RTT 50 мс => Пропускная способность TCP = 10485600 бит / с = 10 Мбит / с
RTT 100 мс => пропускная способность TCP = 5242800 бит / с = 5,2 Мбит / с
RTT 150 мс => пропускная способность TCP = 3495200 бит / с = 4,3 Мбит / с
RTT 200 мс => Пропускная способность TCP = 2621400 бит / с = 2,5 Мбит / с
RTT 300 мс => Пропускная способность TCP = 1747600 бит / с = 1,7 Мбит / с
RTT 500 мс => Пропускная способность TCP = 1048560 бит / с = 1 Мбит / с
При скорости 20 Мбит / с или 160 Мбит / с ваша задержка при передаче туда и обратно составляет порядка 3 миллисекунд. Единственный другой способ ускорить это - использовать оптимизаторы TCP, которые де-дуплируют по проводам или объединяют фрагменты в более крупные пакеты. Через локальную сеть, которая, вероятно, не принесет вам много за счет. Если вы используете механизм SoHo, такой как Linksys или Netgear, ваша задержка может быть вызвана отсутствием общих буферов на коммутаторе. Если это более крупный коммутатор, например, 24-портовый, попробуйте убедиться, что два устройства подключены к одной и той же ASIC. Это поможет задержке сериализации, но не намного. Если бы вы могли уменьшить его до 2 мс, вы бы получили ускорение до 31-32 Мбайт / с. Если они находятся на двух разных коммутаторах, мало что можно сделать без нового оборудования.
Не то, чтобы это помогло вам в этом случае, но Vista/Windows 7, общаясь с Windows 2008 Server, будет использовать SMB2, который гораздо более эффективен, чем обычный SMB, и будет использовать гораздо большую пропускную способность сети. Дополнительные сведения см. В разделах " Повышение производительности файлового сервера с протоколом SMB2 в Windows Server 2008" и " Повышение производительности сети в Microsoft Windows Vista и Windows Server 2008".
SMB2 работает в Samba 4, но похоже, что он перенесен в Samba 3.5.