Установка: IO_URING_PREP_CONNECT SQE отправлены последовательно или параллельно?Linux

Ответить
Anonymous
 Установка: IO_URING_PREP_CONNECT SQE отправлены последовательно или параллельно?

Сообщение Anonymous »

У меня есть клиент C ++, который делает много уведомлений о HTTP для удаленных услуг.

В коде я использую заместимость, чтобы провести уведомления параллельно.

, делая некоторые тесты, к моему удивлению, я обнаружил, что мой клиент приведет к более медленной, чем классическая многопоточная версия с веткой за уведомление.

Исследование проблемы, я узнал узкое место в вызове IO_URY_PREP_CONNECT. Кажется, каждый io_uring_prep_connect SQE запланирован последовательно ядром.

Я прихожу к такому выводу, глядя с Tcpdump на трафик, созданный моим клиентом.
Здесь я вижу, что каждое рукопожатие TCP для удаленного сервера проводится последовательно с пустой тратой много времени.

Все остальные SQE, связанные с отправкой и приемами звонков, кажутся обрабатываемыми параллельно, как и ожидалось.

Подробнее здесь: https://stackoverflow.com/questions/796 ... entially-o
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»