Недавно я настроил общий доступ к файлам Windows через гигабитную сеть Ethernet (я не использую гигантские кадры) с сервером Samba и клиентом Windows Vista. Я сделал несколько копий файлов, но максимальная пропускная способность, которую я вижу, составляет 20 МБ / с (мегабайт, а не мегабит), что составляет около 15% от теоретического максимума 125 МБ / с для сети. Сервер имеет RAID-массив, который может обрабатывать около 75 МБ / с (узким местом является шина PCI), а клиент может обрабатывать около 40 МБ / с при копировании с диска на диск.
Я должен добавить, что в то время в сети не было другого трафика.
Я понимаю, что никогда не получу теоретический максимум, но я не думал, что это будет так плохо.
Какова типичная производительность Windows File Sharing (SMB) в гигабитной сети Ethernet?
Бонусные баллы: что я могу настроить (помимо использования гигантских кадров), чтобы сделать это быстрее?
источник
Ответы:
Качество ваших сетевых карт, коммутаторов и кабелей может оказать влияние. Возможно, стоит поискать отзывы о сетевых картах и переключателях, которые вы используете, чтобы увидеть, не сообщают ли другие люди о них как о неэффективных. Я уверен, что встроенные сетевые адаптеры хуже, чем 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 привязана к процессору на одном ядре аппаратного обеспечения блока.
источник
Ааа ... для сервера важно понять, что скрывается под капотом. Поскольку ему уже два года, я думаю, он уже решил это. Однако для потомков или для кого-то с подобной проблемой, что он, вероятно, столкнулся с этим
(Размер окна 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 .
источник