10G дома: Infiniband, Windows-SMB

Продолжаю потихоньку упражняться с 10G, вынул Myricom, вставил IB. Все под виндой, до Linux+IB руки только на выходных дойдут.

Для начала - завлекательная картинка:

На самом деле, я и слегка за 1Gb/sec видел, чего не должно бы быть (реальных гигабит данных 8 ровно), спишем на точность подсчета виндой.

Под катом: как оно было получено и что было получено еще.

Сетап: две машины под Win 7/x64. Карты Mellanox Infiniband (10G), драйвера OFED 3.0, IPoIB, connected mode.

По вполне разумному совету, поднял Ramdrive еще и на клиенте, чтобы даже быстрый (но недостаточно быстрый) сторадж не замутнял картину.

Подняв его, выяснил, что каталог с Qt на этот ramdrive копируется те же 42 секунды, что и на iSCSI и на быстрый SSD (Qt лежит на медленном Vertex2 SATA2, а еще у меня есть Vertex3 SATA3). То есть в самых быстрых вчерашних тестах меня ограничивал источник.

6-гиговый файл с ramdrive через IB на другой ramdrive улетает со скоростью 0.9-1Gb/sec, то есть со скоростью соединения. Насколько быстрее (чем во вчерашних экспериментах) оно летело бы по Myricom - вопрос открытый, не факт что быстрее чем по IB, потому что Atto benchmark для Win7-SMB over IB намерял для больших блоков заметно побольше:

Для 128k-блока и далее - over 900, для 64k блока (самого интересного) - около 800 мегабайт/сек, на Myricom было 700 на запись и около 600 на чтение.

Короткими же блоками - один фиг по этой бенчмарке, существенной разницы нет.

Берем другую бенчмарку, "копирование Qt по сети", намеряем устойчиво 1:30, что хуже, чем было для той же реализации SMB, но для Myricom-овских карт. Причем эти 1:30 не зависят от источника, что с SSD, что с Ramdrive - один хрен.

Сухой остаток: какие-то чудеса, я ожидал увеличения производительности на мелких транзакциях и, возможно, небольшого падения на длинных (т.к. 8G а не 10), а получил обратный эффект.

Чудес ожидаю от iSCSI и SRP на Linux, но это не сегодня скорее всего.

Comments

BTW, если хватит запала, попробуй померять ещё и с опенсолярисом в качестве сервера (NexentaStor Community), как по SMB (он там ядерный, так что может быть интересно), так и с iSCSI

Я если буду собирать сторадж на "новых дисках" т.е. на вновь купленных, а не на имеющихся, то поразвлекаюсь и с нексентой. Хотя я туда смотрел пару лет назад и был совершенно не впечатлен.
Там еще дурь с Infiniband: драйвера есть, а subnet manager нету, отчего все мучаются ужасно.

Вот еще вопрос: как правильно собирать массив под Nexenta/FreeBSD, делать ли JBOD+RAIDZ или средствами контроллера делать RAID?
В смысле гемороя при замене дисков мне RAIDZ нравится куда более, а в смысле производительности?

Nexenta за последние пару лет здорово продвинулась.

Контроллер какой? Я бы, правда, всё равно делал set of single disks (не JBOD, в этом режиме, как правило, у контроллеров отключается кеш)

На руках есть Adaptec 5805. Но имеется проблема курицы и яйца - если совать его в сторадж, то на чем жить на WS, пока сторадж не поднят...

Скажите, а по какому протоколу происходило копирование? Я просто не верю что TCP-протокол способен выжать 10 гигабит даже внутри одной локальной машины.

Хотелось бы простейший клиент-сервер на каком-нибудь языке программирования C++, C# или Java

Это SMB. Сервер - Linux, клиент - Win7.

А почему не верите то, что мешает получить 7-8 гигабит (как на картинках выше)? Задержки у infiniband маленькие, tcp window - наоборот большое, естественных ограничений нет.

Вот в видеокарту улетают 5-6 гигабайт/сек (40-50 Gbit/s) - и никого это не удивляет.
Bandwidth памяти - 20-25 гигабайт/сек, даже без zero copy tcp есть огромный запас.

Ну и надо учитывать, что это Infiniband Connected Mode, пакеты по 64килобайта (минус заголовки), т.е. чтобы получить 1 гигабайт в секунду нужно всего-то 16 тыс. пакетов в секунду.
На гигабите с jumbo frames - при полной загрузке линка получается около 13 тыс пакетов в секунду - и никакой существенной нагрузки это не создает. Чексуммы считаются картой, битые пакеты (которых, впрочем, обычно нет) - тоже дропаются картой, компьютеру вообще ничего почти делать не надо.

А простейших клиент-серверов - навалом. Возьмите netperf, к примеру.

А почему не верите то, что мешает получить 7-8 гигабит (как на картинках выше)? Задержки у infiniband маленькие, tcp window - наоборот большое, естественных ограничений нет.
- Да я верю. Просто у TCP всё не так хорошо как у infiniband, и где-то читал что для пользования infiniband нужно использовать ихнии протоколы, а не TCP.

На локальном компе делал клиент-сервер на TCP протоколе в Win XP на С++ - получилось около 200 метров в секунду, при этом svchost+system грузили почти полностью одно из ядер процессора.

SMB я прочитал вроде поверх TCP работает, так что по идее быстрее быть не должен чем TCP..

У меня есть три мысли:
1. в Win 7 поправили протокол TCP
2. SMB на самом деле может работать не только с TCP но и с Infibandoвскими протоколами.
3. Не умею я настраивать TCP-соединение.

Вот кажется мне что второе.

У TCP - "плохо" с window. Т.е. если вы живете со стандартным TCP-окном в 64k, то больше чем эти самые 64к за RTT - вы не пропустите. Но это давно вылечили через большие окна.

Других принципиальных проблем я не вижу.

В Win7, да, скорее всего в TCP многое поправили.

Проводил аналогичные тесты Windows - Windows . те же карты Mellanox MHEA28-XTC - 2шт .
2 Сервера на Windows 2012 .
Карты настроены IPoIB . Connected mode не включен .
использовал не SMB а Microsoft iSCSI Target и Microsoft iSCSI initiator .
Скорость упиралась в диски - это и понятно .

Но насторожил меня один момент - при копировании файла в 5 гигов - Respons Time -того диска куда копировался файл (подключенный по ISCSI )уходил за 300 мс ....... .

Повторил все тоже самое с рам дисками - респонс тайм 170 - 240 мс и через пару секунд копирования файла iscsi отваливается ....

Дальнейшие попытки приводили к таким же результатам , что с рам дисками что с обычными ....

не случалось ли у вас подобного ?

2012-го сервера у меня нет.

В остальном
1) каких-то странностей в паре Windows-Linux Server не было
2) я уже довольно долго ( с прошлого лета или начала осени) живу с дисковым массивом вынесенным в отдельный ящик к которому хожу по SRP. Полет совершенно нормальный, никаких проблем вообще (сплевываю три раза...)