Дает ли DPDK/RDMA между двумя компьютерами задержку меньшую, чем пинг локального хоста?

Я знаю, что петлевая проверка будет проходить через сетевой стек ядра до тех пор, пока не достигнет уровня IP, включая накладные расходы на системные вызовы и некоторые накладные расходы на копирование памяти. Чтобы избежать этого, DPDK и RDMA используют разные технологии.
Допустим, у меня есть две машины, соединенные dpdk/rdma, затем я провожу тест сетевой задержки. Будет ли это быстрее, чем петлевая проверка только на одной машине? Я делаю быстрый тестping localhostна процессоре E5-2630 v4 @ 2,20 ГГц, что в среднем составляет 0,010 мс.

У меня возник этот вопрос, когда я тестировал свой кластер ceph с использованием vstart.sh. Я хочу минимизировать задержку в сети, чтобы тщательно проанализировать, как код, связанный с OSD, влияет на задержку.

1 ответ

Судя по разговору в комментариях, настоящий вопрос заключается в следующем:Does DPDK/RDMA between 2 machines gives lower latency than localhost ping.

[Ответ] да, вы можете добиться того же. Но есть некоторые предостережения

  1. ДПДКrte_eth_tx_burstставьте в очередь только дескриптор пакета для DMA на PCIe для отправки трафика. На самом деле пакет не отправляется.
  2. ДПДКrte_eth_tx_buffer_flushявно сбрасывает все ранее буферизованные пакеты на оборудование.
  3. Манипулирование ICMP-запросом (буфером RX) путем изменения каждого байта обходится дорого, вместо этого выберитеrte_pktmbuf_allocчтобы получить mbuf и установить для ref_cnt значение 250.
  4. подготовьте новый буфер с правильными данными полезной нагрузки Ethernet, IP и ICMP

следовательно, с правильным сетевым адаптером (который поддерживает передачу с низкой задержкой), DPDKAPIrte_eth_tx_buffer_flush и предварительно выделенным mbuf с ref_cnt, обновленным до более высокого значения, которого вы можете достичь, вы можете достичь 0.010msв среднем.

Примечание. Для лучшего базового уровня используйте генератор пакетов или пакет Balster, отправьте ICMP-запрос на целевой компьютер с помощью ядра и решения DPDK, чтобы сравнить реальную производительность загрузки для скорости линии, например 1%, 5%, 10%, 25%, 50%. , 75%, 100%.

Другие вопросы по тегам