DPDK使用大页内存技术来提高系统性能,因为大页内存有以下两个特点:
- hugepage 这种页面不受虚拟内存管理影响,不会被替换出内存。
- 同样的内存大小,hugepage产生的页表项数目远少于4kpage,这样就有效的增加了TLB的命中率。
预留大页
2M
动态(非NUMA)
1 | |
动态(NUMA)
1 | |
静态(NUMA时均分)
1 | |
1G
动态
1 | |
静态
1 | |
使用大页
默认
如果使用的是默认大页,即配置中的default_hugepagesz,则dpdk使用默认挂载点/dev/hugepages。
1 | |
非默认
如果系统默认是2M,用户想要使用1G,则需要手动配置。
动态
1 | |
静态
1 | |
问题
当使用的dpdk版本<18.05时,如果停止dpdk或者dpdk程序crash掉,dpdk不会回收使用的大页内存,而是第二次启动的时候重用。这就会导致其他使用大页内存的程序启动失败,解决方法如下:
1 | |