Linux and FreeBSD
- From
- Slawa Olhovchenkov (2:5030/500)
- To
- Constantin Stefanov (2:5054/37.63)
- Date
- 2005-05-30T18:57:08Z
- Area
- RU.UNIX.BSD
Hello Constantin!
30 May 05, Constantin Stefanov writes to Slawa Olhovchenkov:
>> >> CS> Длина латентность,
>> >> CS> сооб- мкс
>> >> CS> щения,
>> >> CS> байт
>> >> CS> 0 5.7
>> >> CS> 1 5.97
>> >> CS> 10 6.01
>> >> CS> 100 6.35
>> >> CS> 1000 9.82
>> >> CS> 1500 10.27
>> >> CS> 1501 10.26
>> >> CS> 2000 10.88
>> >> CS> 5000 13.27
>> >> CS> 10000 19.44
>> >> CS> 100000 127.48
>> >>
>> >> Не верю. Сам посмотри, 1500 байт и 2000 байт передаются практически
>> >> одинаковое время (10мкс). А минимальная задержка (для 1 байта) --
>> >> 5мкс. Какая у тебя скорость в канале? 1.25Гб/с? 10000 байт должны
>> >> передаваться 10000*8/(1.25*10^9)*10^6=64мкс, у тебя что там, машина
>> >> времени?
>> CS> Скорость, как уже было сказано, 10 Гбит/сек.
>> Извини, но это у тебя нигде не было сказанно.
>>
>> CS> Это InfiniBand через свитч. Тест прогнан прям перед написанием
>> CS> письма на реальной системе.
>> Какие-то странные времена.
>> Ты можешь их объяснить?
CS> А что конкретно?
Ну пусть 5.7мкс -- задержка старта и в свиче.
Тогда время передачи должно быть линейно и апроксимироваться (в мкс) 5+N*8/10^4.
Т.е. 1500 -- 6.9мкс, а у тебя 10.27.
10000 -- 13.7, а у тебя 19.44
100000 -- 85.7, а у тебя 127.48.
ОК, возможно не 10Г?
Пробуем сапроксимировать: для 100000 6.56G, для 5000 -- 5.28, для 1500 -- 2.6
В общем -- ничего мне не понятно.
>> >> Когда идет передача на какую-то станцию все остальные желющие ей
>> >> что-либо сказать сосут лапу и не могут отослать желаемое свичу дабы
>> >> начать пересылать пакеты другим адресатам. Если есть желание -- могу
>> >> поискать более детальные исследования. Это не только в коммутаторах
>> >> езернета различного вида обнаружилось, но и в сетях хранения данных.
>> CS> Ну не вопрос. Но на гуляющие задержки идут, дабы сделать среднюю
>> CS> латенстность поменьше.
>> Еще раз -- средняя меньше у store-and-forward. У тебя меньше минимальная,
>> на коротких пакетах.
CS> Которая очень часто играет большую роль при решении рассчетных задач. И
CS> именно поэтому стремятся уменьшить латентность.
Для NAS решают ту же проблему. И там получается, что в реальной системе с существенным трафиком выйгрыш за store-and-forward.
CS> Кстати, почему меньше средняя задержка, я так и не понял. Задержка
CS> считается не до момента конца передачи, а от начала передачи до конца
CS> приема (именно это играет роль). И как ее может уменьшить
CS> store-and-forward в случае блокировки, я не понимаю. Какая разница, где
CS> пакет будет висеть - где-то по пути, или в свитче. Все равно пока
CS> предыдущий не пройдет, этот не поедет.
на другие порты можно передавать. в системе существенно более 2-х машин. соответственно блокироваться будет только пакеты на dst порт, а все остальные добегут куда надо.
Напрмер, с п1 и п2 хотят передать пакеты на порты 3 3 4 5 6 и 3 3 7 8 9 соответственно. В системе без буферизации:
п1-3
п2-3
п1-3
п2-3
п1-4 п2-7
п1-5 п2-8
п1-6 п2-9
в системе с буферизацией:
п1-3 п2-3
п1-3 п2-3 3:п2
п1-4 п2-7 3:п1
п1-5 п2-8 3:п2
п1-6 п2-9
>> >> CS> Теперь насчет драйверов. Во-первых, в этих технологиях нет
>> >> CS> такого маленького ограничения на макс. размер пакета. Я не знаю,
>> >> CS> где он какой, но даже если инкрементировать размер сообщения по
>> >> CS> единичке, то скачка, как на ethernet от 1500 к 1501 ты не
>> >> CS> получишь, т.е. меньше прерывания.
>> >>
>> >> Я про _GigabitEthernet_ говорю. Не про Ethernet, не про FastEthernet.
>> >> Ты разницу видишь? На GigabitEthernet допустимы jumbo frames, это
>> >> 9000 байт как минимум.
>> CS> Хорошо. Покажи разницу во времени передачи сообщения на длинах 9000
>> CS> и 9001 байт.
>> (9000+18+40+18+1)/(9000+18), т.е. 0.6%
CS> Это теория, а не практика. Но пусть так. 1/9001 - это 0.011%. Вот и
CS> получается, что увеличение размера пакета на 0.011% приводит к
CS> увеличению времени передачи на 0.6%. Т.е. относительная разница - почти
CS> в 60 раз. Таким образом, появляются дипазоны размеров сообщений, где
CS> реальная скорость передачи падает (условная 1 на 9000 и 0.94 на 9001).
CS> Как такое учесть при написании программы высокого уровня?
А это не учитывается?
>> >> CS> Во-вторых, на InfinBand релизована хитрая технология RDMA
>> >> CS> (Remote DMA), которая позволяет дать карточке команду "отслать
>> >> CS> вот эту область данных (ну или принять от того-то туда-то)",
>> >> CS> после чего весь процесс произойдет без прерываний, т.е. опять
>> >> CS> имеем уменьшение нагрузки.
>> >>
>> >> А теперь без булшита -- чем это круче тривиального busmaster в
>> >> тривиальныйх интелях и броадкомах? И почему тебе после отсылки
>> >> прерывание не нужно?
>> CS> Нужно. Только ты сможешь сказать ителю "отошли мне вот отсюда 2 МБ"?
>> CS> Я не знаток устройства PCI, но что-то мне кажется, что все-таки ему
>> CS> нельзя сказать отсылать такую большую порцию данных.
>>
>> Тут не PCI, тут IP с [G]Ethernet тебе подлянку сделают.
>> Но ему можно дать очередь пакетов на отправку. Т.е. можно сказать
>> отослать 100 пакетов, каждый по 9000 байт.
CS> Дать очередь - это по одному дать указание, или все же одним командой
CS> "отсюда 2 МБ"?
это дать очередь. дается единоразовая пачка команд.
CS> Опять же упираемся в максимальный размер пакета. В
CS> ethernet на пакеты все режет софт. А тут - карта. Сколько прерываний
CS> экономим?
нисколько. см. выше.
более того, интеля и сами резать могут, вроде как.
>> CS> Слав, ты пойми, это не нужно в обычных сетях. Это нужно именно в
>> CS> числодробилках, причем не на всех задачах. А там - время счета
>> CS> уменьшается в разы при переходе от гигабитаного эзернета к тому же
>> CS> InfiniBand. А это в данном случае и есть критерий истины.
>>
>> Это были прямые эксперементы на современном оборудовании? Не на железяках
>> 1996 года (все что я видел уши имели оттуда)? Если так -- буду знать на
>> будущее.
CS> Вполне современное. Приехало в ноябре прошлого года, декабрь-март
CS> собирали и отлаживали, вот недавно пользователям отдали. Это кластер из
CS> 80 двухпроцессорных Оптеронов, связанных InfiniBand. Там же есть и
CS> гигабит, по нему бегает NFS и всякие управляющие вещи типа rsh или ssh.
CS> Если интересны подробности - http://parallel.ru/cluster/ant-config.html
CS> , а также http://parallel.ru/cluster/ , там описаны другие кластеры, что
CS> стоят у нас.
Разве это ответ на заданный вопрос?
Где построение такогоже кластера на гигабите и сравнение?
... Нас Reboot, а мы кpепчаем
--- GoldED+/BSD 1.1.5
* Origin: (2:5030/500)
SEEN-BY: 46/50 50/203 400/814 450/186 247 1024 451/30 550/196 4635/4 4652/15
SEEN-BY: 5000/5000 5011/13 5015/10 5019/31 5020/52 154 175 400 545 549 639 715
SEEN-BY: 5020/758 830 937 1523 1604 1630 2020 2142 2238 2450 2590 4441 5021/29
SEEN-BY: 5022/128 5025/3 750 5027/16 5029/32 5030/49 115 473 500 556 966 1063
SEEN-BY: 5030/1900 5031/70 72 5035/38 5036/34 5042/13 5049/50 97 5054/1 4 8 9
SEEN-BY: 5054/28 35 36 37 63 66 67 70 75 81 84 85 5055/95 5062/1 10 5063/3
SEEN-BY: 5067/2 5069/7 5070/1222 5079/23 5080/80 1003 5082/6 5083/21 5085/13
SEEN-BY: 5090/108 5095/20 5096/18 6000/12 254 6001/10
PATH: 5030/500 5020/4441 545 5054/1 37