linux内核:Transparent Huge Pages

要说linux内核,本人也是刚刚入门,借着公司的一个bug,趁机好好钻研一下,开拓下眼界,欢迎大牛前来指引踩踏。

要讨论Transparent Huge Pages,应当先从linux内存讲起:

见:大牛博客

32位计算机,即地址总线也为32位,寻址0~0xFFFFFFFF(4G)的地址空间,因此32位计算机仅可使用4G以下内存

linux内存采用分段分页机制,将逻辑地址转换为线性地址再转换为物理地址,该过程包含在MMU中,MMU(Memory Management Unit,内存管理单元)是一个物理硬件,见图片:
MMU描述

图片出处

内存被已页的形式管理,一页的大小为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
这里写图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 内核的内存管理一直是一个重要的领域,因为内存管理对于操作系统的性能和稳定性都有着很大的影响。随着计算机系统的不断发展,内存管理也需要不断地优化和改进。下面列出了一些 Linux 内核内存管理的优化措施: 1. Slab 分配器的优化:Slab 分配器是 Linux 内核中的一种高效的内存分配器,它可以在不同的缓存层次上进行对象的缓存和分配。在 Linux 内核的不同版本中,Slab 分配器都得到了很多的优化和改进,例如优化了缓存的查找和分配算法,增加了缓存的预先分配等。 2. HugeTLB 页面的使用:HugeTLB 页面是 Linux 中的一种大页面,相比于普通页面,它具有更高的性能和更少的 TLB 缓存失效。Linux 内核中可以通过 HugeTLB 来分配大块的物理内存,并将其映射到用户空间,从而提高应用程序的性能。 3. 内存压缩:内存压缩是 Linux 内核中的一种新特性,它可以将内存中的数据进行压缩,从而减少内存的使用量。内存压缩可以在内存紧张的情况下,提高系统的可用内存量,并减少系统的交换行为。 4. 内存回收的改进:内存回收是 Linux 内核中的一个重要功能,它可以回收未使用的内存,并将其重新分配给需要的应用程序。Linux 内核中的内存回收机制也得到了很多的优化和改进,例如增加了 KSM(Kernel Same-Page Merging)机制来减少内存的使用量,增加了 THP(Transparent Huge Pages)机制来提高内存的使用效率等。 5. NUMA(Non-Uniform Memory Access)优化:NUMA 是一种多处理器架构,它包括多个处理器和多个内存控制器,内存的访问时间不同。Linux 内核中可以通过 NUMA 优化来提高系统的性能,例如通过 NUMA 映射来减少不必要的内存访问和数据迁移等。 6. 内存管理的锁优化:内存管理是 Linux 内核中的一个核心功能,它需要对内存的访问进行管理,因此需要使用锁来保证数据的一致性。在 Linux 内核中,内存管理的锁也得到了很多的优化和改进,例如采用了读写锁和自旋锁等机制来提高锁的效率,减少锁的争用等。 以上是一些 Linux 内核内存管理的优化措施,这些措施在不同的场景下可以提高系统的性能和稳定性,让 Linux 操作系统更加出色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值