Какова типичная производительность Windows File Sharing (SMB) в гигабитной сети Ethernet?

38856
Kaypro II

Недавно я настроил общий доступ к файлам Windows по гигабитной сети Ethernet (я не использую гигантские фреймы) с сервером Samba и клиентом Windows Vista. Я сделал несколько копий файлов, но максимальная пропускная способность, которую я вижу, составляет 20 МБ / с (мегабайт, а не мегабит), что составляет около 15% от теоретического максимума 125 МБ / с для сети. Сервер имеет RAID-массив, который может обрабатывать около 75 МБ / с (узким местом является шина PCI), а клиент может обрабатывать около 40 МБ / с при копировании с диска на диск.

Я должен добавить, что в то время в сети не было другого трафика.

Я понимаю, что никогда не получу теоретический максимум, но я не думал, что это будет так плохо.

Какова типичная производительность Windows File Sharing (SMB) в гигабитной сети Ethernet?

Бонусные баллы: что я могу настроить (кроме использования гигантских кадров), чтобы сделать это быстрее?

9
Я исправил проблемы с производительностью в моей сети: они представляли собой сочетание плохой встроенной сетевой платы на сервере и старых драйверов сетевой платы на клиенте. Сейчас я вижу от 50 МБ / с до 80 МБ / с на нескольких массовых копиях, которые я сделал для тестирования. Хотя передачи, кажется, неожиданно приостанавливаются на несколько секунд, время от времени. Kaypro II 14 лет назад 2
Еще одна причина моей низкой производительности сети заключалась в том, что при простом запуске Virtual PC (без обязательного запуска каких-либо образов) что-то, похоже, приводило к снижению скорости сетевой карты до ~ 100 Мбит / с на моей машине с Vista. Kaypro II 14 лет назад 1

3 ответа на вопрос

7
David Spillett

Качество ваших сетевых карт, коммутаторов и кабелей может оказать влияние. Возможно, стоит поискать обзоры сетевых адаптеров и переключателей, которые вы используете, чтобы узнать, сообщают ли другие люди о том, что они работают не слишком хорошо. Я уверен, что встроенные сетевые адаптеры хуже, чем Gbit-передачи, хотя, по моему опыту, это, кажется, не имеет большого значения, если вообще имеет значение, в моей среде.

Для справки, я только что установил новые коммутаторы Gbit в нашем офисе (заменив старые 100Mbit коммутаторы), и большие передачи SMB выполняются со скоростью почти (но меньше) 30Mbyte / sec между каждой комбинацией протестированных мной машин. Я только что провел быстрый тест с netcat между двумя машинами и получил похожие результаты, поэтому я не думаю, что SMB является узким местом. Две машины, которые я только что протестировал, имеют два переключателя между ними, которые могут иметь эффект, но я думаю, что этот эффект минимален, учитывая, насколько близки цифры передачи SMB к машине на одном и том же переключателе.

Лучшая скорость передачи данных, которую я видел в сети Gbit, была немного ниже 50 Мбайт / с в самом быстром виде. Это происходило при передаче образа диска с одного компьютера в файл на другом (для целей преобразования в виртуальный диск VMWare. В этом случае две машины были подключены через короткий перекрестный кабель, а не через коммутатор. По совпадению). одна из рассматриваемых машин была одной из тех машин, которые я только что протестировал и получил ~ 29 Мбайт / с - наиболее вероятным виновником основного узкого места в моем случае является, вероятно, 8-летняя проводка в здании, которая могла быть сделана по быстрому (и столь же ненаучному) тесту в моей маленькой домашней сети скорость передачи данных превышает 35 Мбайт / с, копирование файла из общего ресурса Samba в Windows и 25 Мбайт / с в другом направлении (я

Jumbo-кадры будут иметь значение для массовых передач, поэтому я советую вам попробовать, если все ваш комплект поддерживает их должным образом.

Короче говоря, исходя из моего анекдотического опыта, ваши 20 Мбайт / с немного медленны, но не так массово. Все мои установки Windows и Samba практически не настроены, поэтому я подозреваю, что ваше оборудование / проводка - это разница между тем, что я вижу, и тем, что вы видите.

редактировать

Конечно, через пять лет после этого ответа аппаратное и программное обеспечение пошло дальше. Я часто вижу скорость передачи более 90 МБ / с на машинах с сетью Gbit, даже с дешевым комплектом. Мой домашний медиа / резервный / другой сервер, кажется, ограничен более чем 60 для массовой передачи, но это похоже на то, что samba привязана к процессору на одном ядре аппаратного обеспечения коробки.

Кабели не должны быть проблемой для меня, гигабитная часть моей сети полностью CAT6. Я не могу использовать гигантские кадры, потому что моя (домашняя) сеть неоднородна - у меня есть Wi-Fi и сегмент 100 Мбит - и я понимаю, что гигантские кадры только гигабитные. Хотя, если бы я мог ограничить гигантские кадры определенными парами хостов, это могло бы сработать. Это хорошее замечание об оборудовании. Все мое - потребительского уровня; Я должен разобраться в этом. Другая мысль, которая у меня возникла, заключается в том, как встроенные сетевые адаптеры могут быть связаны. Если кто-то на шине PCI, это может быть фактором. Kaypro II 14 лет назад 0
разве вы не имеете в виду «ваши 20 Мбайт / с немного медленны, но __не__ так массивны» (конец был)? в противном случае +1, хорошая рецензия. quack quixote 14 лет назад 0
Хороший улов ~ шарлатан, должным образом отредактированный. David Spillett 14 лет назад 0
arrrgh. к сожалению, я не могу редактировать комментарии, или я перестал бы есть конец ... quack quixote 14 лет назад 0
3
Scott-CCIE24038

Ahh...this is where it is important for a server guy to understand what's under the hood. Since this is two years old I figure he's solved it already. However for posterity or anyone with a similar issue what he probably ran into is this

(TCP window size * 8bits / RTT in milliseconds) = Max TCP throughput in bps

While you might have a Gigabit network a single TCP flow won't likely be able to get that high.

Here is a simple table assuming you have the default 65535Byte TCP window size in Vista

RTT 10 ms => TCP throughput = 52428000 bps = 52Mbps

RTT 20 ms => TCP throughput = 26214000 bps = 26Mbps

RTT 50 ms => TCP throughput = 10485600 bps = 10Mbps

RTT 100 ms => TCP throughput = 5242800 bps = 5.2Mbps

RTT 150 ms => TCP throughput = 3495200 bps = 4.3Mbps

RTT 200 ms => TCP throughput = 2621400 bps = 2.5Mbps

RTT 300 ms => TCP throughput = 1747600 bps = 1.7Mbps

RTT 500 ms => TCP throughput = 1048560 bps = 1Mbps

At 20Mbytes/sec or 160Mbits/sec your roundtrip latency is likely on the order of about 3 milliseconds. The only other way to speed that up is by using TCP optimizers that do de-dup over the wire or splice together fragments into larger packets. Over a LAN that likely isn't going to gain you much for the expense. If you are using SoHo gear like Linksys or Netgear your latency is probably getting introduced by the lack of shared buffers on the switch. If it's a larger switch like a 24 port, try making sure that the two devices are connected to the same ASIC. This will help the serialization delay, but not by much. If you could drop it down to 2ms you'd get a boost up to about 31-32Mbytes/sec. If they are on two different switches there isn't much you can do without new hardware.

2
Sim

Не то, чтобы это помогло вам в этом случае, но Vista / Windows 7, общаясь с Windows 2008 Server, будет использовать SMB2, который намного более эффективен, чем обычный SMB, и будет использовать гораздо большую пропускную способность сети. Дополнительные сведения см. В разделах « Повышение производительности файлового сервера с протоколом SMB2 в Windows Server 2008» и « Повышение производительности сети в Microsoft Windows Vista и Windows Server 2008» .

SMB2 работает в Samba 4, но похоже, что он перенесен в Samba 3.5 .

Похожие вопросы