龙叔Linux:大内存页(大页)

        linux 的内存管理是以页为单位进行管理的,标准的页大小是4kb,也就是4096字节。而linux允许配置定义更大大小的页。例如2M,1G,这就是大内存页。

        

1、大内存页(WHAT)

        大内存页就是页的大小更大,例如可以配置 2M,1G大小的页。

        这里要注意,大页内存分配的是物理内存,不会被操作系统的内存管理换出到磁盘上,这部分内存相当于是被预留

        也就是大页内存类似专用内存,会从系统中抠出一块大内存(pagesize*nr_pages),而想要使用这块内存,应用程序必须修改程序,使用上述几种方式来使用大页。 其次,如果程序内存使用较少,却申请了大页,也会造成内存浪费。

2、为何使用大内存页(WHY)

       使用大页可以减少访问页表条目所需的系统资源量来提高系统性能。

       linux中,每个进程都有一个完整的虚拟内存地址,进程访问虚拟内存地址,内核通过页表(映射虚拟内存地址到物理内存地址)访问真正的物理内存地址。

        所以,对于每个页的访问,都需要内核加载相关的映射,而这个动作是有一定消耗的。

        当一个进程需要大量内存的时候,例如1G,那么就会有262144页,也会在页表中占用262144个页表项,而TBL无法缓存这么多页表项,于是会出现大量未命中的情况,就只能去加载页表,导致性能下降。

        如果使用2M的大内存页,那么就只需要512页,也只需要512个页表项,可以大大增加TBL的命中率,提高进程性能。

        (注释:

        TLB是一个内存管理单元,用于改进虚拟地址到物理地址转换速度的缓存

        TLB是一个小的,虚拟寻址的缓存,其中每一行都保存着一个由单个PTE(Page Table Entry,页表项)组成的块。如果没有TLB,则每次取数据都需要两次访问内存,即查页表获得物理地址和取数据。

        TLB的大小是4KB)

3、如何配置大内存页(HOW)

3.1、配置memlock

        memlock是最大锁定内存地址空间(kb) 。

        memlock参数指定用户可以锁定其地址空间的内存量。而打野内存就是已锁定在物理内存中。

        编辑/etc/security/limits.conf配置memlock,配置的值比你服务器的内存稍微小一点

        例如服务器内存是2G,我这里配置的是1900000

* soft memlock 1900000
* hard memlock 1900000

        然后重新登录服务器,用 ulimit -l 命令就可以看memlock的值已经生效

3.2、配置大内存页

         cat /proc/meminfo |grep -i HugePage 查看大页配置情况

        对应参数的意义:

HugePages_Total: 0 总共大页数目

HugePages_Free: 0 空闲数目

HugePages_Rsvd: 0 预留数目

HugePages_Surp: 0

Hugepagesize: 2048 kB

        修改配置文件 /etc/sysctl.conf 添加如下参数

vm.nr_hugepages = 10

        然后sysctl -p生效配置,这个时候再查看大页配置,会发现已经生效

         cat /proc/meminfo |grep -i HugePage

4、应用举例

        1、一般oracle会使用到

        2、我所在的公司,宿主机分配kvm的场景中,给宿主机也配置使用了大页内存

欢迎关注我的公众号:龙叔运维

持续分享运维经验

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙叔运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值