Обход ядра melanox (LD_preload) Оптимизация производительности записи сокетов TCP/IP [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Обход ядра melanox (LD_preload) Оптимизация производительности записи сокетов TCP/IP [закрыто]

Сообщение Anonymous »

Мы выполняем профилирование с использованием времени отправки сокета и обнаружили, что «отправка» занимает около 5-7 мкс, размер пакета составляет 215 байт.
Код профилирования сильный>

Код: Выделить всё

#ifdef SEND_ASYNC_DEBUG

loge("SendNext, b4send, {}", tn.rdns()-starttime); // 4-150 max=1500ns
starttime = tn.rdns();

#endif

auto n = send(m_Socket, sendPtr, sendSize, MSG_NOSIGNAL);

#ifdef SEND_ASYNC_DEBUG

loge("SendNext, send, {}", tn.rdns()-starttime); // 3000-10000 max=20000ns
запустить скрипт[/b]

Код: Выделить всё

cd /opt/abc11 && ulimit -c unlimited && LD_PRELOAD="libvma.so /opt/omdc/libmimalloc.so.2.0" VMA_SPEC=latency VMA_MEM_ALLOC_TYPE=1 VMA_THREAD_MODE=1 VMA_RX_BYTES_MIN=2621440 VMA_RX_BUFS=2000000 VMA_INTERNAL_THREAD_AFFINITY=3  nice -n -20 /opt/abc11/abc /opt/abc11/abc.json
с помощью VMA_stat мы подтверждаем, что все отправленные данные уже «выгружены», поэтому я предполагаю, что

Код: Выделить всё

send(xxx,xxx,xxx,xxx)
используют библиотеку mellanox вместо
вопроса
  • Есть ли методы оптимизации для сокращения времени передачи сокета?
мы используем VMA_SPEC=latency и работаем на CentOS
Я провел небольшое исследование, TCP/IP Отправка java.net.Socket займет около 5-7 мкс, я думал, что использование обхода ядра будет лучше (оптимизация производительности записи через сокет TCP/IP Java)

Подробнее здесь: https://stackoverflow.com/questions/792 ... timization
Ответить

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

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

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

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

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