linux内核:Transparent Huge Pages
2016-08-09 17:25
316 查看
要说linux内核,本人也是刚刚入门,借着公司的一个bug,趁机好好钻研一下,开拓下眼界,欢迎大牛前来指引踩踏。
要讨论Transparent Huge Pages,应当先从linux内存讲起:
见:大牛博客
32位计算机,即地址总线也为32位,寻址0~0xFFFFFFFF(4G)的地址空间,因此32位计算机仅可使用4G以下内存
linux内存采用分段分页机制,将逻辑地址转换为线性地址再转换为物理地址,该过程包含在MMU中,MMU(Memory Management Unit,内存管理单元)是一个物理硬件,见图片:
图片出处
内存被已页的形式管理,一页的大小为4096bytes,1MB的内存会被分为256页,1GB的内存将会被分为256000页,以此类推。
这些页的映射关系都存在在CPU的内置MMU中,有大量的内存映射表需要去管理,然而在现代CPU内置MMU中,处理数百,甚至数千的内存映射表是没有问题的,甚至可以通过交换(swap分区)来维持几G内存的映射表也可以很好的工作,但是当遇到某些应用(部分大型服务器)的内存需求已经超过了MMU可管理的内存映射表的范围时,系统性能将会受到影响,并且基于软件的内存管理,也会导致整个系统变得非常慢。
而Red Hat Enterprise Linux 6通过采用huge pages的方式解决这个问题。
简单来说,huge pages就是提高内存页的大小,例如,对于GB级别的内存,内存页大小设置为2MB,TB级别的则采用1GB大小的内存页,大小在内核参数中可配。而配置方法参见:Configure Huge Pages
相对应的,huge pages通过人工干预的方式较为复杂,并且还需要修改大量的代码来契合的使用它。为了解决这个问题,Red Hat Enterprise Linux 6实现了THP(transparent huge pages),说了这么多终于进入我们的主题了,THP是一个包含了自动创建,使用,管理huge pages的抽象层。他不对应用可见。保证了从系统到开发者的便捷。
为了保证它的性能,大量的开发者(来着社区和Red Hat)在大量的系统,应用,配置,负载等方面进行了测试和优化,保证了THP能够用默认配置来使系统达到最优。
然而,THP不推荐用于database工作负载
摘自:access.redhat.com
要讨论Transparent Huge Pages,应当先从linux内存讲起:
见:大牛博客
32位计算机,即地址总线也为32位,寻址0~0xFFFFFFFF(4G)的地址空间,因此32位计算机仅可使用4G以下内存
linux内存采用分段分页机制,将逻辑地址转换为线性地址再转换为物理地址,该过程包含在MMU中,MMU(Memory Management Unit,内存管理单元)是一个物理硬件,见图片:
图片出处
内存被已页的形式管理,一页的大小为4096bytes,1MB的内存会被分为256页,1GB的内存将会被分为256000页,以此类推。
这些页的映射关系都存在在CPU的内置MMU中,有大量的内存映射表需要去管理,然而在现代CPU内置MMU中,处理数百,甚至数千的内存映射表是没有问题的,甚至可以通过交换(swap分区)来维持几G内存的映射表也可以很好的工作,但是当遇到某些应用(部分大型服务器)的内存需求已经超过了MMU可管理的内存映射表的范围时,系统性能将会受到影响,并且基于软件的内存管理,也会导致整个系统变得非常慢。
而Red Hat Enterprise Linux 6通过采用huge pages的方式解决这个问题。
简单来说,huge pages就是提高内存页的大小,例如,对于GB级别的内存,内存页大小设置为2MB,TB级别的则采用1GB大小的内存页,大小在内核参数中可配。而配置方法参见:Configure Huge Pages
相对应的,huge pages通过人工干预的方式较为复杂,并且还需要修改大量的代码来契合的使用它。为了解决这个问题,Red Hat Enterprise Linux 6实现了THP(transparent huge pages),说了这么多终于进入我们的主题了,THP是一个包含了自动创建,使用,管理huge pages的抽象层。他不对应用可见。保证了从系统到开发者的便捷。
为了保证它的性能,大量的开发者(来着社区和Red Hat)在大量的系统,应用,配置,负载等方面进行了测试和优化,保证了THP能够用默认配置来使系统达到最优。
然而,THP不推荐用于database工作负载
摘自:access.redhat.com
相关文章推荐
- Transparent HugePages 详解
- THP Transparent HugePages 相关知识与关闭【转】
- Examining Huge Pages or Transparent Huge Pages performance
- Linux 关于Transparent Hugepages的介绍【转】
- mongodb 运行时禁用 Transparent Huge Pages
- CentOS学习19_centos6.5关闭transparent huge pages详细操作
- CentOS7 禁用Transparent Huge Pages的实现方法
- How to use, monitor, and disable transparent hugepages in Red Hat Enterprise Linux 6
- THP Transparent HugePages 相关知识与关闭
- Linux 关于Transparent Hugepages的介绍
- TokuMX will not run with transparent huge pages enabled.
- 如何将Transparent HugePages关闭
- G.2.4 Disabling Transparent HugePages
- THP Transparent HugePages关闭
- Linux传统Huge Pages与Transparent Huge Pages再次学习总结
- voltdb开启时遇到Transparent huge pages (THP) not supported问题
- Disabling Transparent HugePages
- Linux 6 Transparent Huge Pages and Hadoop Workloads
- 大页(huge pages) 系列四 ---Transparent HugePages
- Transparent Huge Pages