Обход ядра 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
с помощью VMA_stat мы подтверждаем, что все отправленные данные уже «выгружены», поэтому я предполагаю, что

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

send(xxx,xxx,xxx,xxx)
используете библиотеку mellanox вместо ?
вопрос[/b]
  • Есть ли какие-либо методы оптимизации для сокращения времени передачи сокета?
  • Есть ли очевидные проблемы с использованием LD_preload?
запустить скрипт

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

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_SPEC=latency и работаем на CentOS

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

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

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

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

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

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