DPDK内存初始化失败

dpdk应用程序启动失败,信息提示:

Current CONFIG_RTE_MAX_MEMSEG=256 is not enough
Please either increase it or request less amount of memory.
PANIC in rte_eal_init():
Cannot init memory

罪魁祸首是内存碎片,app无法申请到足够多的连续大块内存,只能申请到很多小块内存。以至于内存块数目超过了系统设置的256个。

最佳解决办法:

dpdk-getting-started-guide.pdf这个文档的2.3.2节中提到

The allocation of hugepages should be done at boot time or as soon as possible after system boot to prevent memory from being fragmented in physical memory.To reserve hugepages at boot time, a parameter is passed to the Linux* kernel on the kernel command line.

就是申请大页内存应该在系统启动时,或系统启动后尽快申请,避免内存被割裂。

可以在/boot/grub/grub.conf中的kernel行,追加

default_hugepagesz=1G hugepagesz=1G hugepages=4

使用1G的大页,大页内存4G。

In the case of a dual-socket NUMA system, the number of hugepages reserved at boot time is generally divided equally between the two sockets (on the assumption that sufficient memory is present on both sockets).

在双槽NUMA系统下,hugepage内存被均分给了两个槽。

时间: 2024-08-04 23:00:54

DPDK内存初始化失败的相关文章

DPDK内存管理-----(一)初始化

1 前言 DPDK通过使用hugetlbfs,减少CPU TLB表的Miss次数,提高性能. 2 初始化 DPDK的内存初始化工作,主要是将hugetlbfs的配置的大内存页,根据其映射的物理地址是否连续.属于哪个Socket等,有效的组织起来,为后续管理提供便利. 2.1 eal_hugepage_info_init() eal_hugepage_info_init()主要是获取配置好的Hugetlbfs的相关信息,并将其保存在struct internal_config数据结构中. 主要工作

Android ADT初始化失败

在android的官网上买下载android的adt完了,进行解压之后,开始点击 eclipse.exe,果然给了我一个惊喜,那就是 [ Failed to create the Java Virtual Machine. ],看到这个消息之后进行了 网上的查询,发现错误的根源是eclipse.ini这个文件的配置有问题,这个文件 在我下载下来之后没有动过,难道是JDK,我发现自己的机器上已经安装了JDK的 1.6.0_33觉得应该也不是,打开CMD敲入[java -version].[java

[转]dpdk内存管理

转自 dpdk内存管理 --初始化(hugepage)    https://www.cnblogs.com/MerlinJ/p/4074391.html dpdk内存管理--rte_mempool内存管理  https://www.cnblogs.com/MerlinJ/p/4081986.html dpdk内存管理-- rte_malloc内存管理   https://www.cnblogs.com/MerlinJ/p/4092432.html 原文地址:https://www.cnblog

一个WAS“初始化失败”的处置经验

昨晚9时许,收到项目现场的同事电话,说一个正在运行的WAS因为日志及DUMP文件过大造成磁盘空间不足,宕机了.在处理过程中删除了超大的DUMP文件,但是无法启动was了,没有任何有效的日志输出,was就停留在了"服务器已启动,但是初始化失败"的画面上. 最初怀疑是运行环境发生了变化,我反复让同事确认JDK版本,hosts文件以及was目录的属主信息.但始终未发现任何异常或者有价值的信息. 后来,让同事 将"/was61/IBM/WebSphere/AppServer/prof

PTVS的内存分配失败及处理

快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 PTVS是微软的一个VS插件,用以支持VS下的PYTHON编辑与调试,PTVS在运行时需要依赖于Analyzer生成的数据库,但当python的库文件较多时会出现内存分配失败的异常,类似这样的: System.OutOfMemoryException: 引发类型为"System.OutOfMemoryException

ok6410内存初始化--未完待续

•DRAM:它的基本原件是小电容,电容可以在两个极板上保留电荷,但是需要定期的充电(刷新),否则数据会丢失.缺点:由于要定期刷新存储介质,存取速度较慢. •SRAM:它是一种具有静止存取功能的内存,不需要定期刷新电路就能保存它内部存储的数据.其优点:存取速度快; 但是缺点是:功耗大,成本高.常用作存储容量不高,但存取速度快的场合,比如steppingstone. 在嵌入式硬件体系中,除了CPU内部的”垫脚石”采用SRAM外,板载内存一般会采用DRAM,而DRAM又可以分为SDRAM,DDR,DD

Hostapd初始化失败

Hostapd hostapd 是一个用户态用于AP和认证服务器的守护进程.它实现了IEEE 802.11相关的接入管理,IEEE 802.1X/WPA/WPA2/EAP 认证, RADIUS客户端,EAP服务器和RADIUS 认证服务器. hostapd配置文件 interface=ath16 bridge=br0 logger_syslog=-1 logger_syslog_level=2 logger_stdout=-1 logger_stdout_level=2 ctrl_interfa

Android Studio调用百度地图为何总是初始化失败?

============问题描述============ Android Studio调用百度地图为何总是初始化失败? 只要一调用,就黑屏,然后程序自动关闭?请问是什么原因,libs我也加.jar文件了 ============解决方案1============ 怎么加?只是加个包?没写其他了? ============解决方案2============ 布局写了么.. ============解决方案3============ 运行在真机?还是模拟器? ============解决方案4===

[zz]VC2005-应用程序正常初始化失败-0xc0150002

最近几天被这个问题困惑了许久. 不禁感叹微软的东东真是越做越烂了,也终于明白了时隔12年大家仍然死守VC6的原因.. 用VC2005编译的程序,编译时没有任何错误,但是运行时就是提示"应用程序正常初始化失败"!! 查找了各方面资料,做了各种尝试,网上说什么的都有:有让安装vc2005 sp1补丁的:有让安装vcredist_x86.exe的; 有让把CRT库的dll直接拷贝到程序目录的; 有让清理注册表的;有让装.NetFramework新版本的;有让查manifest的; 结果我尝试