【问题标题】:One buffer pool per NIC queue每个 NIC 队列一个缓冲池
【发布时间】:2020-01-03 18:13:51
【问题描述】:

AFAIK DPDK 代码示例为整个应用程序(或给定端口的所有队列)使用单个 rte_mempool。

假设所有 EAL 线程只与它们自己的 RX/TX 队列交互,是否建议每个 lcore/队列有一个内存池以进一步减少争用?

【问题讨论】:

    标签: dpdk


    【解决方案1】:

    内存池使用 per-lcore 缓存,因此它们可以非常有效地处理争用。

    当然,添加更多内存池仍然可能带来一些性能优势,但它也会增加内存占用,因此程序可能不再适合 L3。

    所以答案是:视情况而定,必须衡量。我建议改为将每个 lcore 缓存增加到 Tx + RX 描述符的数量。这应该保证在源代码没有大的变化的情况下,lcore 之间没有争用。

    始终对您的更改进行基准测试,这是性能优化的主要规则;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多