首页 > 其他分享 >透明巨页和巨页的详解

透明巨页和巨页的详解

时间:2022-11-28 10:23:30浏览次数:35  
标签:透明 大页 巨页 详解 内存 THP 页面

大页内存

大页内存(HugePages),有时也叫“大内存页”、“内存大页”、“标准大页”。操作系统以内存页为单位管理内存,内存页的大小对系统性能有影响。内存页设得太小,内存页会很多,管理内存页的数组会比较大,耗内存,同时TLB(Translation Lookaside Buffer,页表寄存缓冲器,可理解为页表缓冲)大小是固定的,导致TLB MISS增加。在不同的应用场合,内存页的大小的最优值是不同的。所以一般的系统都支持多种内存页的取值。

大页内存的优势

“大内存页”有助于 Linux 系统进行虚拟内存管理。顾名思义,除了标准的4KB大小的页面外,它还能帮助管理内存中的巨大的页面(通常是2MB)。使用“大内存页”,你最大可以定义 1GB 的页面大小。对于那些内存操作非常频繁的业务来说,可以有效的提高性能。简而言之,通过启用大页内存,系统只需要处理较少的页面映射表,从而减少访问/维护它们的开销!

大页内存与透明大页的关系

大页内存类似专用内存,会从系统中抠出一块大内存,而想要使用这块内存,应用程序必须修改程序。 其次,如果程序内存使用较少,却申请了大页,就造成了内存浪费,这个时候就要用到透明大页(Transparent Huge Pages,THP)了。这两者的区别在于大页的分配机制:标准大页管理是预分配的方式,而透明大页管理则是动态分配的方式,且不需要修改程序源码。

透明大页之功

THP 是一个提取层,可用于自动创建、管理和使用超大页面的大多数方面。THP可以改进系统的性能,可以减少使用超大页面的复杂行,目前THP已在各种系统、配置、程序和负载中测试优化,可以改进大多数系统配置的性能。

查看大页内存方法

grep Huge /proc/meminfo
#查看大页内存使用情况
cat /sys/devices/system/node/node*/meminfo | fgrep Huge
#查看各个numa节点的大页内存情况
cat /proc/mounts
#查看大页内存挂载情况

标签:透明,大页,巨页,详解,内存,THP,页面
From: https://www.cnblogs.com/linhaostudy/p/16931513.html

相关文章

  • React 学习笔记之二 - React 详解
    2.1为什么使用ReactReact.js只是一个JS库,而其整个技术栈是一个渐进式框架。渐进式的含义是:主张最少,也就是可以只用它其中的一部分,有了新的需求后再引入其他的类库。......
  • MySQL进阶实战4,MySQL索引详解,下篇
    一、索引索引是存储引擎用于快速查找记录的一种数据结构。我觉得数据库中最重要的知识点,就是索引。存储引擎以不同的方式使用B-Tree索引,性能也各有不同,各有优劣。例如MyI......
  • 单一职责原则详解
    目录介绍00.问题思考分析01.前沿基础介绍02.如何理解单一指责03.如何判断是否单一04.单一判断原则05.单一就更好么06.总结回顾一下00.问题思考分析01.如何理解类的单一指责,......
  • 第15章-Spring AOP切点表达式(Pointcut)详解
    目录一、概述二、切点表达式配置1.内置配置2.注解配置3.公共配置二、切点表达式类型executionwithinthistargetargsbean@within@target@annotation@args三、切点表达式......
  • sci论文格式要求详解
    全文链接:http://tecdat.cn/?p=30589熟悉和掌握SCI文章的写作格式是发表SCI论文的基本要求,很多作者不能高度重视格式要求,可能会影响文章的发表,也许等待文章录用通知的时间......
  • Kafka 设计与原理详解
    一、Kafka简介本文综合了我之前写的kafka相关文章,可作为一个全面了解学习kafka的培训学习资料。1.1背景历史当今社会各种应用系统诸如商业、社交、搜索、浏览等像信息工厂......
  • vector的底层实现!(万字长文详解!)
    vector的底层简单实现!vector的成员变量template<classT>classvector{typedefT*iterator;//迭代器 typedefconstT*const_iterator;private: iterator_st......
  • Day24.1:抽象类的详解
    抽象类1.1抽象类概述一个动物类中,我们创建对象时会去new一个动物;但是我们不应该直接创建动物这个对象,因为动物本身就是抽象的,没有动物这种实例,我们创建的应该是一个具体......
  • ByteBuffer常用方法详解
    缓冲区(Buffer) 缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区:使用缓冲区有这么两个好处:1、......
  • 二. Dockerfile构建镜像参数详解、Docker镜像分层构建案例 -1
    镜像简介: docker镜像基于unionfilesystem将多个目录合并挂载至一个目录给容器使用。docker镜像只有rootfs而没有内核、运行使用的是宿主机的bootfs。  rootfs(root......