首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试XDP与DPDK

测试XDP与DPDK
EN

Stack Overflow用户
提问于 2020-05-07 19:56:32
回答 1查看 4.5K关注 0票数 7

我确实有一些使用DPDK的经验,但目前我正在阅读许多关于XDP的博客。我试图比较这两种技术,并理解DPDK和XDP之间的区别。这引起了一些问题。我希望有人能帮助我回答以下几个问题:

带有DPDK的

  1. 可以将工作人员映射到CPU核心,并隔离将由DPDK使用的CPU核心。在eBPF / XDP的情况下,使用的是哪个CPU核?是否使用了所有可用的CPU核心?是否有可能隔离用于eBPF / XDP程序的CPU核心?
  2. 当我测试来自DPDK应用程序的吞吐量时,我能够检查环缓冲区(备忘录池)是否已满,这样数据包就会丢失。但是,如何检查eBPF / XDP程序是否会因为吞吐量过高而导致数据包丢失?我假设当eBPF / XDP程序处理数据包花费太多时间时,最终您会看到数据包丢失吗?(特别是在以较高速率发送64B数据包以查找可发送数据包的最大数量时)

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-09 02:08:36

With DPDK I can map workers to CPU cores and isolate CPU cores which will be used by DPDK. In case of eBPF / XDP, which CPU cores are used?回答: eBPF的XDP运行在内核空间,与DPDK用户空间不同。

Are all available CPU cores used?回答:是的,但通常情况下,不平衡或中断固定会将端口的RX队列放到特定的核心上。

Would it be possible to isolate CPU cores meant for eBPF / XDP programs?回答:您指的是KERNEL_CMD_LINE选项isol,这种理解是不正确的。如前所述,您可以插入RX队列的中断,强制在该核心上运行eBPF XDP。

When I test the throughput from a DPDK application, I'm able to check whether ring buffers (mempools) are full so packets will be lost. But how can I check whether an eBPF / XDP program causes packet drops because the throughput is too high?答案:您可以使用NIC和eBPF计数器的组合来实现相同的功能。

I assume when an eBPF / XDP program takes too much time to process a packet, eventually, you will see packet drops? (especially when sending 64B packets on a high rate to find the maximum number of packets that can be send)回答:不一定正确,XDP的最佳性能是使用零拷贝驱动程序对用户进行访问.在单独的核心上运行应用程序线程提供了与DPDK几乎相当的性能(用2*10 10Gbps 95%的DPDK性能测试)。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61666624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档