云计算基础-大页内存

简介: 什么是大页内存?简单来说,就是通过增大操作系统页的大小来减小页表,从而避免快表缺失。

什么是大页内存

简单来说,就是通过增大操作系统页的大小来减小页表,从而避免快表缺失。

主要应用场景

主要运用于内存密集型业务的虚拟机,比如对于运行数据库系统的虚拟机,采用HugePages(大页)后,可以提升数据库的整体性能(越20%),并有效减小性能抖动

内存基本概念

CPU访问内存时,是去通过寻址去访问内存的,寻址最终寻的是内存的物理地址,物理地址是通过虚拟地址映射出去的,在这里引入了一个内存管理单元,内存管理单元的核心思想是利用虚拟地址代替物理地址,内存管理单元将物理地址和虚拟地址按照固定大小分割成一个个页,或者叫页表,CPU在访问内存时,先访问虚拟地址,再到物理地址的一个访问过程

为了提高地址变换速度,可在地址变换机构中,增设一个具有并行查找能力的特殊高速缓存:块表(TLB:页表寄存器缓冲),用以存放当前访问的那些页表项,由于成本的关系,块表不可能做的很大,通常只存放16~512个页表项

页表存放在内存中,快表存放在高速缓冲曲,速度比内存快很多,当CPU访问内存时,尽可能命中高速缓存区的快表,从而提高虚拟机的寻址速度

为什么需要大页内存

在Linux操作系统上运行内存需求量较大的应用程序时,由于其采用的默认页面大小为4KB,因而将会产生较多的TLB miss和缺页中断,从而大大影响应用程序性能(也就是说,由于TLB大小考虑成本关系,一般最大也就512个页表,而操作系统默认页面大小为4K,如果此时虚拟机所需要的内存这512个页表放不下了,此时,就会向内存中的页表去寻址,此时虚拟机性能将会降低)

当操作系统以2MB甚至更大作为分页的单位时,将会大大减少TLBmiss和缺页中断的数量,显著提高应用程序的性能,这也正是Linux内核引入大页面的直接原因(原本一个页对应4KB的内存,虚拟机需要访问8KB的内存时,就需要占用两个快表,修改默认页大小为2MB时,虚拟机访问2MB的内存页仅仅占用1个快表)

TLB存储极限时,就会发生TLB Miss,之后,OS就会命令CPU去访问内存的页表,如果频繁的出现TLB miss,程序的性能会下降的很快,为了让TLB可以存储更多的页地址映射关系,我们的做法是调大内存分页大小

简单描述

CPU是通过寻址去访问内存的,内存的地址也是保存在内存中的,但CPU的速度要比内存速度快非常多,为了提高CPU的寻址速度而新增了一个模块:TLB(页表寄存器缓冲),以加速CPU的寻址速度,CPU在访问内存时优先在TLB中查找内存地址,当TLB中找不到内存地址时才会去内存中查找,由于成本的关系,块表不可能做的很大,通常只存放16~512个页表项。

一般情况下,内存默认页面大小为4KB,即使512个页表项也放不了多少内存地址,如果CPU在TLB中没有查询到内存地址就会去内存中去查找,从而产生TLB miss,虚拟机性能依旧无法得到最大的提升。

而大页内存就是将将传统的小页面(通常为4KB)替换为更大的页面(通常为2MB或更大),每个页表项对应的物理内存范围也更大,因此可以减少页表项的数量,从而降低TLB miss 的概率。

相关文章
|
26天前
|
NoSQL Redis
Redis性能优化问题之禁用内存大页,如何解决
Redis性能优化问题之禁用内存大页,如何解决
|
3月前
|
存储 网络性能优化 虚拟化
云计算——内存虚拟化与I/O虚拟化
云计算——内存虚拟化与I/O虚拟化
112 0
|
存储 Dragonfly 编解码
阿里云计算型c8y/通用型g8y/内存型r8y实例云服务器性能及价格参考
计算型c8y、通用型g8y、内存型r8y是阿里云的最新一代云服务器实例规格,采用阿里自研倚天710处理器,基于最新一代CIPU和Dragonfly ARM Hypervisor ,通过芯片快速路径加速手段实现计算、存储、网络性能的大幅提升。阿里云现在推出自研高性价比倚天实例云服务器特惠,新老用户同享7.2折特惠,最长可买五年,且不限制带宽容量,赶紧来看看吧。
551 3
阿里云计算型c8y/通用型g8y/内存型r8y实例云服务器性能及价格参考
|
编解码 分布式计算 安全
阿里云计算型c7、通用型g7和内存型r7云服务器网络带宽能力及详细使用场景介绍
计算型c7、通用型g7和内存型r7是阿里云推荐的上云首选第七代云服务器,突破算力极限,属于高性价比云服务器,极致性能,安全加码,覆盖多行业场景应用,,由于计算型c7实例vCPU内存比为1:2,通用型g7实例vCPU内存比为1:4,内存型r7实例vCPU内存比为1:8,因此,不同实例就会有多种配置可选,不同配置的网络带宽能力及详细使用场景是不同的,下面小编为大家介绍下计算型c7、通用型g7和内存型r7系列云服务器不同实例规格的情况下具体的网络带宽能力及详细使用场景。
|
Oracle 安全 关系型数据库
Linux的daemon进程对Oracle数据库的SGA使用大页内存的处理
Oracle对运行在机器内存超过32G上的数据库推荐使用HugePages 来容纳Oracle数据库的SGA,参见。
194 0
|
虚拟化 云计算
云计算知识第七讲:内存虚拟化
内存虚拟化的产生源于VMM与客户系统在对物理内存的认识上存在冲突,造成物理内存真正拥有者-VMM必须对系统访问的内存进行一定程度上的虚拟化。
云计算知识第七讲:内存虚拟化
阿里云计算巢 x MemVerge | 大内存云上联合解决方案速览
阿里云计算巢与MemVerge合作,构建基于飞天技术底座的大内存云上联合解决方案。企业客户可将需要实时工作负载的业务迁移上云,构建高度可用的跨集群内存湖,保障大内存的兼容访问,降低通信延迟,提升可用性。
阿里云计算巢 x MemVerge | 大内存云上联合解决方案速览
|
Oracle 关系型数据库 Linux
|
SQL Oracle 关系型数据库
Oracle数据库实例在AIX 平台下使用大页内存(Large Page Memory)
        不管是AIX平台还是在Linux平台使用大页内存(Large Page Memory)都是依赖于操作系统的特性。Linux平台和AIX平台默认的页面大小都是4K,Linux平台的HugePage特性通常每个页面可以调整为2M;AIX平台的Large Page Memory使得单个页面最大可以调整为16M;下面详细讨论在AIX平台下,Oracle数据库实例使用64K和16M两种规格的内存页面,主要讨论的是16M的内存页面。
1372 0
|
1月前
|
存储 分布式计算 Hadoop
HadoopCPU、内存、存储限制
【7月更文挑战第13天】
107 14