返回顶部
首页 > 资讯 > 操作系统 >Linux下如何配值HugePages。
  • 457
分享到

Linux下如何配值HugePages。

2023-06-06 03:06:57 457人浏览 泡泡鱼
摘要

linux下如何配值HugePages。,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。HugePages是通过使用大页内存来取代传统的4kb内存页面,使得管理虚拟地址数变少

linux下如何配值HugePages。,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

HugePages是通过使用大页内存来取代传统的4kb内存页面,使得管理虚拟地址数变少,加快了从虚拟地址到物理地址的映射以及通过摒弃内存页面的换入换出以提高内存的整体性能。尤其是对于8GB以上的内存以及较大的oracle SGA size,建议配值并使用HugePage特性。

基于x86_64 Linux下来描述如何配值 HugePages。

1、Hugepage的引入

操作系统对于数据的存取直接从物理内存要比从磁盘读写数据要快的多,但是物理内存是有限的,这样就引出了物理内存与虚拟内存的概念。虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,这部分磁盘空间windows下称之为虚拟内存,Linux下被称为交换空间(Swap Space)。

对于这个大内存的管理(物理内存+虚拟内存),大多数操作系统采用了分段或分页的方式进行管理。分段是粗粒度的管理方式,而分页则是细粒度管理方式,分页方式可以避免内存空间的浪费。相应地,也就存在内存的物理地址与虚拟地址的概念。通过前面这两种方式,CPU必须把虚拟地址转换程物理内存地址才能真正访问内存。为了提高这个转换效率,CPU会缓存最近的虚拟内存地址和物理内存地址的映射关系,并保存在一个由CPU维护的映射表中。为了尽量提高内存的访问速度,需要在映射表中保存尽量多的映射关系。

linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会按照LRU算法在适当的时候将物理内存中不经常使用的内存页自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。通常情况下,Linux默认情况下每页是4K,这就意味着如果物理内存很大,则映射表的条目将会非常多,会影响CPU的检索效率。因为内存大小是固定的,为了减少映射表的条目,可采取的办法只有增加页的尺寸。因此Hugepage便因此而来。也就是打破传统的小页面的内存管理方式,使用大页面2m,4m,16m等等。如此一来映射条目则明显减少。如果系统有大量的物理内存(大于8G),则物理32位的操作系统还是64位的,都应该使用Hugepage。

二、hugepages相关概念

Page Table: page table也就是一种用于内存管理的实现方式,用于物理地址到虚拟之间的映射。因此对于内存的访问,先是访问Page Table,然后根据Page Table 中的映射关系,隐式的转移到物理地址来存取数据。


TLB: Translation Lookaside Buffer (TLB) ,CPU中的一块固定大小的cache,包含了部分page table的映射关系,用于快速实现虚拟地址到物理地址的转换。


hugetlb: hugetlb 是TLB中指向HugePage的一个entry(通常大于4k或预定义页面大小)。 HugePage 通过hugetlb entries来实现,也可以理解为HugePage 是hugetlb page entry的一个句柄。


hugetlbfs: 一个类似于tmpfs的新的in-memory filesystem,在2.6内核被提出。

三、Regular Pages 与 HugePages

a、Regular Pages

在下图中有两个不同的进程,两个进程对于内存的访问是首先访问本地的page table,而本地的page table又参照了system-wide table的page(也就是前面描述的TLB),最终system-wide table中的entry指向了实际的物理地址。图中物理地址page size大小4kb。也可以看到进程1和进程2在system-wide table中都指向了page2,也就是同一个物理地址。Oracle sga中共享内存的使用会出现上述情形。

Linux下如何配值HugePages。

b、Huge Pages

在下图中,本地的page table 与system page table中都包含了huge page属性。因此page table中的任意一个page可能使用了常规的page,

也有可能使用了huge page。同样进程1和进程2都共享了其中的Hpage2。图中的物理内存常规的page size是4kb,huge page size 是4mb。

Linux下如何配值HugePages。

四、 hugepage 优点

对于较大的系统内存以及sga,使用hugepage可以极大程度的提高Oracle数据库性能。

a、Not swappable

无需交换。也就是不存在页面由于内存空间不足而存在换入换出的问题

b、Relief of TLB pressure

减轻TLB的压力,也就是降低了cpu cache可缓存的地址映射压力。由于使用了huge page,相同的内存大小情况下,管理的虚拟地址数量变少。

TLB entry可以包含更多的地址空间,cpu的寻址能力相应的得到了增强。

c、Decreased page table overhead

降低page table负载,对于普通的page,每个entry需要64bytes进行管理,对于50gb的内存,管理这些entry,需要800mb的大小

(50*1024*1024)kb/4kb*64bytes/1024/1024=800mb。

d、Eliminated page table lookup overhead

消除page table查找负载

e、Faster overall memory perfORMance

提高内存的整体性能

关于 Linux下如何配值HugePages。问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网操作系统频道了解更多相关知识。

--结束END--

本文标题: Linux下如何配值HugePages。

本文链接: https://lsjlt.com/news/245949.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux下如何配值HugePages。
    Linux下如何配值HugePages。,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。HugePages是通过使用大页内存来取代传统的4kb内存页面,使得管理虚拟地址数变少...
    99+
    2023-06-06
  • linux配置大页HugePages
    一、什么时候配置when IF     SGA >= 2GB AND sessions >= 500 THEN enabling HugePages becomes a r...
    99+
    2024-04-02
  • Linux系统下快速配置HugePages的完整步骤
    前言 关于linux系统的HugePages与Oracle数据库优化,可以参考熊爷之前的文章,相关概念介绍的非常清晰: Linux大内存页Oracle数据库优化 本文旨在Linux系统上快速配置HugePages 测...
    99+
    2022-06-04
    hugepages linux命令大全 linux快速配置
  • Oracle中如何配置HugePages内存
    这篇文章主要介绍Oracle中如何配置HugePages内存,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 为oracle服务器配置Hugepages 1.1、查看当前系统...
    99+
    2024-04-02
  • 如何进行linux内存的Hugepages优化
    本篇文章给大家分享的是有关如何进行linux内存的Hugepages优化,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Hugepages是从Linux kernal 2.6后被...
    99+
    2023-06-06
  • Linux下如何修改MTU值
    这篇文章给大家分享的是有关Linux下如何修改MTU值的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MTU 是英文 Maximum Transmission Unit 的缩写,即最大传输单元,它的单位是字节。在我...
    99+
    2023-06-27
  • Linux下如何配置MOC
    这篇文章给大家分享的是有关Linux下如何配置MOC的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Music On Console (MOC)是一款在Linux/Unix文字接口下的音乐播放程式。 MOC功能强大...
    99+
    2023-06-28
  • Linux下如何配置Caddy
    这篇文章主要为大家展示了“Linux下如何配置Caddy”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何配置Caddy”这篇文章吧。Caddy是一款快速,易用的生产型开源Web服务...
    99+
    2023-06-27
  • Linux下如何配置VPS
    这篇文章主要介绍了Linux下如何配置VPS,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。VPS又叫虚似专用服务器。它就相当于是一种技术,可以将一部服务器分割成多个虚似专享服...
    99+
    2023-06-27
  • Linux下如何配置PPTP
    这篇文章主要介绍了Linux下如何配置PPTP,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PPTP(Point to Point Tunneling Protocol),即...
    99+
    2023-06-27
  • 如何读懂HugePages的原理
    如何读懂HugePages的原理,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在介绍 HugePages 之前,我们先来回顾一下 Linux 下 虚拟内存 与 物理内存 之...
    99+
    2023-06-15
  • 如何实现完全解析HugePages
    这期内容当中小编将会给大家带来有关如何实现完全解析HugePages,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。本文使用 Linux 内核 2.6.23 版本HugePages分配器初始化在内核初始化时...
    99+
    2023-06-15
  • Linux系统下如何修改TTL值
    这篇“Linux系统下如何修改TTL值”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“Linux系统下如何修改TTL值”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下...
    99+
    2023-06-27
  • Linux系统下如何配置SSH
    本篇内容介绍了“Linux系统下如何配置SSH”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SSH是一个用来替代TELNET、FTP以及R命...
    99+
    2023-06-10
  • Linux下Hbase如何安装配置
    这篇文章主要介绍Linux下Hbase如何安装配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux下Hbase安装配置首先要安装HadoopLinux Hadoop 2.7.3 安装搭建1. Hbase安装包...
    99+
    2023-06-21
  • Linux下如何安装配置Twemproxy
    这篇文章给大家分享的是有关Linux下如何安装配置Twemproxy的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Twemproxy是一种代理分片机制,由Twitter开源。Twemproxy作为代理,可接受来自...
    99+
    2023-06-28
  • Linux下如何安装配置composer
    这篇文章主要介绍了Linux下如何安装配置composer,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声...
    99+
    2023-06-28
  • Linux下如何安装配置Typora
    这篇文章主要介绍Linux下如何安装配置Typora,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别,...
    99+
    2023-06-28
  • Linux下如何安装配置Percona
    本篇内容主要讲解“Linux下如何安装配置Percona”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下如何安装配置Percona”吧!Percona Server是一款独立的数据库产...
    99+
    2023-06-27
  • Linux下如何配置DNS服务
    这篇文章主要介绍Linux下如何配置DNS服务,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、DNS服务简介DNS:域名系统。主要用来记录(登记)域名和IP地址的映射关系(对应关系)。DNS功能:域名解析。正向解析...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作