近期公司老大让我研究大页内存,说是大页内存可以优化程序,让我根据dpdk来进行研究提升程序性能。前段时间研究dpdk中的各种机制,导致在这条路上走了许多的歪路,最后在开会的时候那么一说,卧槽,完全不对啊。需要达到的目标和思想完全跟dpdk不是一个路子。下来重新研究吧。
大页内存优化程序主要是针对其中的malloc机制的,意思就是分配大页,增加tlb的命中率。这个地方附上tlb的详细解释地址
https://blog.youkuaiyun.com/qq_36357820/article/details/78922819记录了tlb的命中。
使用方式:
一种是以程序来使用,一种是以配置来使用,两种都需要配置大页内存和使用libhugetlbfs.so库。
程序主要是在分配空间的时候直接使用libhugetlbfs.so库中的分配机制,这里我们暂时不做研究。
配置则是以libhugetlbfs.so库中的空间分配方式替换掉gnu的分配空间方式,这里我们使用这种方式。
配置使用:
主要针对centos6和centos7进行配置。
centos6配置:
1. 安装libhugetlbfs库
libhugetlbfs库实现了大页内存的访问。安装可以通过apt-get或者yum命令完成,如果系统没有该命令,还可以从官网下载。
2. 配置grub启动文件
这一步很关键,决定着你分配的每个大页的大小和多少大页。具体操作是编辑/etc/grub.conf文件,如图五所示。