Can you please confirm my understanding of how memory bandwidth affects the ability of PF_RING to do full packet capture at wire speeds?
Assume we want to capture data from a saturated 10GigE link. That corresponds to 10 billion bits/sec, or about 1.25 billion bytes/sec. Packets arrive in the NIC and must be copied to the ring buffer, so the system will consume 1.25GBps of memory bandwidth, even if libzero is used. Correct? Even with DMA, memory bandwidth is consumed. If the PF_RING enabled libpcap is used, there will be one extra copy per packet to deliver packet to the userland application, requiring 2.5GBps of memory bandwidth. Correct? If we ignore L1/L2/L3 caches, current servers will typically have more than 2.5Gbps of memory bandwidth available, but in practice, actual bandwidth is limited at about that amount. So, eliminating that extra packet copy is indeed the difference between consuming about 50% of the memory bandwidth vs. consuming about 100% of the memory bandwidth. But libzero won't drop the memory bandwidth consumed by packet capture down to 0%. There is no free lunch. Have I made any gross errors here? Thanks.
_______________________________________________ Ntop-misc mailing list [email protected] http://listgateway.unipi.it/mailman/listinfo/ntop-misc
