You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pktgen-DPDK中run.sh执行报错:EAL内存初始化失败求助

解决DPDK Pktgen启动时EAL内存初始化失败问题

这是DPDK NUMA节点内存分配不匹配的典型问题,咱们一步步来排查修复:

先拆解下报错的核心信息:

EAL: Not enough memory available on socket 1! Requested: 2048MB, available: 0MB
EAL: FATAL: Cannot init memory
EAL: Cannot init memory

这个报错说明你的Pktgen脚本默认尝试在NUMA节点1(socket1)上分配2GB内存,但这个节点完全没有配置大页内存。另外你提到尝试分配了2048KB大页——这应该是个小失误,2048KB只有2MB,远远达不到DPDK需要的2GB内存要求,正确的应该是分配2048MB(2GB)的大页。

解决步骤:

1. 先确认系统NUMA节点和大页状态

先搞清楚你的机器NUMA节点数量,以及当前大页的分配情况:

  • 查看NUMA节点信息:
    numactl --hardware
    
    输出里会显示node 0、node 1等节点,确认你的机器是否真的有两个物理socket。
  • 查看当前大页总数和各节点分配情况:
    grep HugePages /proc/meminfo
    grep -A 2 node /sys/devices/system/node/node*/hugepages/hugepages-2048kB/nr_hugepages
    
    如果输出里node1的nr_hugepages是0,就坐实了socket1没分配大页的问题。

2. 针对两种场景修复大页分配

场景一:机器只有一个NUMA节点(socket0)

如果numactl --hardware只显示node 0,说明脚本没必要尝试在socket1分配内存,直接修改run.sh里的DPDK启动参数即可:
找到脚本里类似--socket-mem 2048或者-m 2048的参数,改成:

--socket-mem 2048,0

或者直接加上--single-socket参数,强制DPDK只使用第一个NUMA节点的内存:

--single-socket --socket-mem 2048
场景二:机器确实有两个NUMA节点(socket0和socket1)

那需要给socket1也分配足够的大页:

  1. 先卸载已挂载的大页:
    sudo umount /dev/hugepages
    
  2. 给每个节点分配2GB大页(假设使用2MB大小的大页,2GB需要1024页):
    # 给socket0分配1024个2MB大页(共2GB)
    echo 1024 | sudo tee /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
    # 给socket1分配1024个2MB大页(共2GB)
    echo 1024 | sudo tee /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
    
  3. 重新挂载大页:
    sudo mount -t hugetlbfs hugetlbfs /dev/hugepages
    

3. 验证修复并重新运行

先确认大页分配成功:

grep -A 5 node[01] /sys/devices/system/node/node*/hugepages/hugepages-2048kB/nr_hugepages

如果两个节点的nr_hugepages都显示1024,就可以重新运行Pktgen脚本了:

sudo -E ./tools/run.sh

额外注意点

  • 如果是在虚拟机上运行,要确保宿主机已经开启大页支持,并且虚拟机配置里分配了足够的大页内存。
  • 如果是物理机,检查BIOS设置里是否开启了Huge Pages或Transparent Huge Pages相关选项(不同厂商BIOS命名可能不同)。

内容的提问来源于stack exchange,提问作者Haritha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:52:30