云盘算底子-大页内存

守听  金牌会员 | 2024-6-15 01:04:42 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 668|帖子 668|积分 2004

大页内存功能概述

什么是大页内存

简单来说,就是通过增大操作体系页的巨细来减小页表,从而避免快表缺失
主要应用场景
主要运用于内存密集型业务的假造机,比如对于运行数据库体系的假造机,接纳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 的概率。





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表