I have several computers with ConnectX-3 cards in a 10Gb LAN. Sometimes they send packets to each other. These packets are small, about 100-200 bytes. My goal is to deliver and process them as quickly as it’s possible.
I wonder if anyone know if there is any actual performance difference between VMA and DPDK in terms of latency?
Say, if I can sacrifice a core just for busy-polling, would I benefit from switching VMA to DPDK?
You can review the following tuning guide by Mellanox http://www.mellanox.com/related-docs/prod_software/Performance_Tuning_Guide_for_Mellanox_Network_Adapters.pdf to help you with further tuning server and applications. In there you can also find instruction for how to “pin” a certain app to a certain core. also, how to tune specifically to a specific CPU type, OS flavor, etc…
Hope it helps… good luck
I have certainly red this guide, thanks. My question is not about the performance itself rather than the possible performance difference between VMA and DPDK. Are these two just an interface and do the same exactly thing with the underlying layer, or one of them is a bit closer to hardware thus providing an opportunity to improve the latency? Is there any benefit from switching to DPDK in my case?
They’re not exactly the same, libvma is pulling packets by simulating a network stack which offloads traffic from kernel, DPDK accelerates kernel traffic by going directly to the HW (using the PMD driver). in the end both products are utilizing fast access to the ConnectX.HW buffers
Different flows of traffic in an application might be better on one or the other - I suggest you check what is the best flow for you
Thanks for the answer. My point was to ask the community before (or instead of) digging into DPDK, but it looks like it’s the only way.