Установка: 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

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