LINUX.ORG.RU

Одновременная запись в несколько сокетов


2

3

Суть задачи: RedHat Linux MRG Realtime Есть структура, содержащая (условно) список сокетов, в которые надо писать одинаковые данные (мультиплексирование). Сокетов достаточно много - сотни и единицы тысяч.

Операции записи должны быть асинхронными, при этом потокобезопасными. Высокие требования к латентности (распространение рыночных данных).

На какие низкоуровневые средства предложите посмотреть и какие высокоуровневые реализации посоветуете посмотреть?

Спасибо заранее.


Ответ на: комментарий от ae1234

Миллисекунд.

Это не я - я как раз в том решении не участвовал. За что купил, за то и продаю :)

westtrd
() автор топика
Ответ на: комментарий от ae1234

Вчера общался с человеком из Штатов, работающим в реалтайм солюшнах

Он мне выдал довольно таки интересные рекомендации: http://www.openonload.org/

Но там надо модифицировать код драйвера под свой NIC.

Что это дает - работа с NIC из userspace минуя kernel со всеми вытекающими, включая уход от проблемы переключения контекстов.

westtrd
() автор топика
Ответ на: комментарий от westtrd

и что - эмулировать всю работу с tcp в юзерспейсе ? а смысл ? ядро ОЧЕНЬ хорошо работает с tcp - тут и сомневаться то бесмысленно

был бы udp - смысл был бы

ae1234 ★★
()
Ответ на: комментарий от westtrd

ксеон 2.4 выдает 250 мегабит если поставите типа i7 на 4.5 ггрц - будет выдавать 500 мегабит из гигабита

вы уверены что это вам мало ?

ae1234 ★★
()
Ответ на: комментарий от westtrd

уж незнаю какие 12 - у меня было 6-7 :)

если там говориться о 4.2 микросекунд - это хардваре причем на том же железе - 2.4ггрц ксеон - то то что у меня получилось 6-7 микросекунд - это крайне хорошо уж чтобы не было - но 2-3 микросекнуд на обработку всех tcp премудростей - всяко не жалко

ae1234 ★★
()
Ответ на: комментарий от westtrd

и если не заметили - там все тесты на udp
у вас же tcp - и я тестил tcp
с udp все конечно просто - там логики в обработке и нет совсем - это вам не tcp

ae1234 ★★
()
Ответ на: комментарий от ae1234

Кстати, в openonload свой стек протоколов :) Единственно, надо фрагменты драйвера корректировать, что совсем муторно :)

Дождусь тестового стенда, начну тестить разные варианты )

Результатами поделюсь :)

westtrd
() автор топика
Ответ на: комментарий от ae1234

Вот потому и фрагмент дров надо переписывать под ту карту с которой будете работать.

Архитектура же openonload не меняется для этого, она включает дрова + стек в юзерспейсе.

westtrd
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.