我可以限制dpdk的大页面大小吗?

时间:2019-06-21 03:37:32

标签: dpdk

我有两个程序,一个基于dpdk。两者都使用大页面。但是dpdk默认会用完所有大页面。我找不到任何有关如何设置dpdk可以使用的大页面大小的文档。有什么方便的方法吗?如果没有,我必须研究dpdk源并进行修改。

3 个答案:

答案 0 :(得分:1)

当然,命令行选项很少。最简单的是-m <megabytes>,但是如果您有几个NUMA节点,则其内部逻辑可能是完全错误的。

我建议改用—socket-mem <mbytes,mbytes,...>,它允许为每个NUMA节点分配一定数量的兆字节。

有关更多详细信息,请参见:https://doc.dpdk.org/guides/linux_gsg/linux_eal_parameters.html

答案 1 :(得分:1)

需要注意几个问题,直到@andriy声明DPDK 18.11选项puts()-m为止。但是随着DPDK 19.11的发布,内部逻辑有了巨大的改进。

对于高于18.11模式的版本,请使用--socket-mem模拟较旧的内存模型。但是,如果不是传统模式,请使用--legacy-mem

假设平台是x86(分别为2MB和1GB),据我所知,可以动态更改2MB,而不能动态分配1GB。因此,在内核cmd行中传递的任何选项都将导致所有NUMA分配相等。

答案 2 :(得分:0)

要添加,除了上面提到的@andriy以外,还可以使用此添加来隐式设置硬限制 /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages,拥有2MB的巨大页面大小

同样,对于1G来说,我们也可以做到,但这取决于支持。