Linux and FreeBSD
- From
- Slawa Olhovchenkov (2:5030/500)
- To
- Constantin Stefanov (2:5054/37.63)
- Date
- 2005-05-30T16:49:42Z
- 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> Система не самая лучшая (свитч не фонтан, да и глюк в матери
>> CS> мешает), поэтому получается больше 5 мкс. 4 мкс, по утверждению
>> CS> разработчика, достигается на PCI Express. Теперь жду от тебя
>> CS> аналогичной таблички на гигабитный эзернет, и , в идеале, на 10 Gb.
>> Я не опущусь до такого позора.
CS> А почему, собственно? Прогнать тест и запостить результаты - сложно?
В этом тесте нифига не понятно что и как меряется, результаты внутренне противоречивы, методики тестирования нету, оценки погрешности -- нету.
>> Ну щаз. Начинай лапшу с ушей сматывать -- как это будет без блокировок,
>> если одновременно две станции захотят передавать сообщение на третью?
CS> Две на одну - с блокировкой. Но если ты все станции на свитче разобьешь
CS> на пары, то каждая пара может друг с другом обмениваться с той же
CS> скоростью, как если бы она была на свитче одна. Покажи мне Ethernet
CS> свитч с такими характеристиками.
Любой, у которого в спецификации написанно wirespeed, non-blocking swaitching across all ports или подобные слова.
Ну или у которого производительность указывается как sum_allports(speed/64B).
А это DLink, 3com, Cisco. И многие другие.
>> CS> А теперь объясни, где там ЖОПА в не store-and-forward.
>> Гуляющие задержки.
>> Когда идет передача на какую-то станцию все остальные желющие ей что-либо
>> сказать сосут лапу и не могут отослать желаемое свичу дабы начать
>> пересылать пакеты другим адресатам. Если есть желание -- могу поискать
>> более детальные исследования. Это не только в коммутаторах езернета
>> различного вида обнаружилось, но и в сетях хранения данных.
CS> Ну не вопрос. Но на гуляющие задержки идут, дабы сделать среднюю
CS> латенстность поменьше.
Еще раз -- средняя меньше у store-and-forward. У тебя меньше минимальная, на коротких пакетах.
CS> Плюс см. ниже про разделение типа портов на
CS> уровне карты. Если затык одному адресату - мы пока другому кинем
CS> сообщение.
>> 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> Во-вторых, на InfinBand релизована хитрая технология RDMA (Remote
>> CS> DMA), которая позволяет дать карточке команду "отслать вот эту
>> CS> область данных (ну или принять от того-то туда-то)", после чего весь
>> CS> процесс произойдет без прерываний, т.е. опять имеем уменьшение
>> CS> нагрузки.
>>
>> А теперь без булшита -- чем это круче тривиального busmaster в
>> тривиальныйх интелях и броадкомах? И почему тебе после отсылки прерывание
>> не нужно?
CS> Нужно. Только ты сможешь сказать ителю "отошли мне вот отсюда 2 МБ"? Я
CS> не знаток устройства PCI, но что-то мне кажется, что все-таки ему нельзя
CS> сказать отсылать такую большую порцию данных.
Тут не PCI, тут IP с [G]Ethernet тебе подлянку сделают.
Но ему можно дать очередь пакетов на отправку. Т.е. можно сказать отослать 100 пакетов, каждый по 9000 байт.
CS> Кроме того, там можно настроить все это так, чтобы одна машина дает
CS> команду своим драйверам "воон тому хосту можно лить мне в память что ему
CS> надо". А тот уже дает команду драйверу, в какое место адресного
CS> пространства удаленного процесса запихнуть данные. Это не очень секурно
CS> вероятно, но там, где это применяется, другие подходы к безопасности, но
CS> опять-таки позволяет сэкономить.
Я не уверен что это реально применимо. Не по соображениям секурности, а по возможности все это проинтегрировать друг с другом и синхронизировать доступ к данным. Могу ошибаться.
>> CS> На карте стоит достаточно большая своя память (от 128 МБ), так что
>> CS> опять часто дергать не приходится.
>> Типа экзотика? Не смешно.
CS> Отлично. Назови марку карты Gigabit Ethernet, где хотя бы столько.
ОК, с прямым углом перепутал, там столько КБ, а не МБ.
CS> Слав, ты пойми, это не нужно в обычных сетях. Это нужно именно в
CS> числодробилках, причем не на всех задачах. А там - время счета
CS> уменьшается в разы при переходе от гигабитаного эзернета к тому же
CS> InfiniBand. А это в данном случае и есть критерий истины.
Это были прямые эксперементы на современном оборудовании? Не на железяках 1996 года (все что я видел уши имели оттуда)?
Если так -- буду знать на будущее.
... Среди немыслимых побед цивилизации мы одиноки, как карась в канализации.
--- 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