大页(Huge Page)简单介绍
x86(包括x86-32和x86-64)架构的CPU默认使用4KB大小的内存页面(getconf PAGESIZE),但是它们也支持较大的内存页,如x86-64系统就支持2MB大小的大页(huge page)。
Linux 2.6及以上的内核都支持huge page
如果在系统中使用了huge page,则内存页的数量会减少,从而需要更少的页表(page table),节约了页表所占用的内存数量,并且所需的地址转换也减少了,TLB缓存失效的次数就减少了,从而提高了内存访问的性能。
另外,由于地址转换所需的信息一般保存在CPU的缓存中,huge page的使用让地址转换信息减少,从而减少了CPU缓存的使用,减轻了CPU缓存的压力,让CPU缓存能更多地用于应用程序的数据缓存,也能够在整体上提升系统的性能。
在KVM中,也可以将huge page的特性应用到客户机中:
qemu-kvm 就提供了"-mempath FILE"参数选项用于使用huge page
另外,还有一个参数"-mem-prealloc"可以让宿主机在启动客户机时就全部分配好客户机的内存,而不是在客户机实际用到更多内存时才按需分配。
-mem-prealloc 必须在有"-mem-path" 参数时才能使用
提前分配好内存的好处是客户机的内存访问速度更快,缺点是客户机启动时就得到了所有的内存,从而让宿主机的内存很快减少(而不是根据客户机的需求而动态调整内存分配)。
通过在宿主机中的如下几个操作让客户机使用huge page
(1)检查宿主机目前状态,检查默认的内存大小和内存使用情况,如下:
getconf PAGESIZE
cat /proc/meminfo
(2)(在宿主机中)挂载hugetlbfs文件系统,命令为:
"mount -t hugetlbfs hugetlbfs /dev/hugepages",
如下:
mount -t hugetlbfs hugetlbfs /dev/hugepages
mount|grep huge
( 3 )设置(在宿主机中设置允许虚拟机使用的)hugepage的数量,命令为"sysctl vm.nr_hugepages=num", 如下:
( 4 )启动客户机让其使用hugepage的内存,使用"-mem-path" 参数,如下:
qemu-system-x86_64 -m 1024 -smp 2 /opt/cs-01.img -mem-path /dev/hugepages
( 5 )查看宿主机中huge page的使用情况,可以看到"HugePages_Free"数值减少,因为客户机使用了一定数最的hugepage。
在如下的输出中,"HugePages_Free"数值的减少没有512(512*2MB=1024MB)那么多,这是因为启动客户机时并没有实际分配1024MB内存,qemu-kvm命令行中加上前面提到的"-mem-prealloc"参数就会让meminfo文件中"HugePages_Free"的数量减少和分配给客户机的一致
至此,如果在客户机中运行的应用程序(典型的应用为oracle数据库)具备使用huge page的能力,那么就可以在客户机中使用huge page带来性能的提升。
总的来说,对于内存访问密集型的应用,在KVM客户机中使用huge page是可以较明显地提高客户机性能的,不过,它也有一个缺点,使用huge page的内存不能被换出(swap out),也不能使用ballooning方式自动增长。
转载于:https://www.cnblogs.com/wyzhou/p/9596575.html
大页(Huge Page)简单介绍相关推荐
- 机器视觉的9大快速开发库简单介绍
目录 一.开源的OpenCV 二.VisionPro®7.0系统,快速开发强大的应用系统 快速建立原型和易于集成 先进的机器视觉软件 硬件灵活性 技术优势 VisionPro 的软件结构 关于康耐视( ...
- 内存虚拟化、内存复用、大页内存作用及详解
内存虚拟化.内存复用.大页内存作用及详解 1. 内存虚拟化 2. 内存复用 2.1. 内存共享 2.2. 内存置换 2.3. 内存气泡 3. 大页内存 3.1. 大页内存原理 3.2. 大页内存配置 ...
- 透明大页相关内核参数_Alibaba Cloud Linux 2系统中与透明大页THP相关的性能调优方法...
免责声明:本文档可能包含第三方产品信息,该信息仅供参考.阿里云对第三方产品的性能.可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺. 概述 本文主要介绍在Alibaba Cloud Li ...
- Linux一个内存大页多大,Linux中的“大内存页”(hugepage)是个什么?
学习 Linux 中的大内存页hugepage.理解什么是"大内存页",如何进行配置,如何查看当前状态以及如何禁用它. 本文中我们会详细介绍大内存页huge page,让你能够回答 ...
- 【内存】Linux 页表、大页与透明大页|大页内存
目录 页表与MMU CPU访问的是什么地址(虚拟地址,物理地址)? MMU如何工作 MMU对内存的保护 多级页表 一. 内存映射与页表 1. 内存映射 2. 页表 4. 页表的简单工作原理 大页 什么 ...
- 透明大页相关内核参数_Linux7.4 关闭透明大页
1 THP 背景知识补充说明 在Linux6.x之后的平台,在安装Oracle数据库的时候都建议关闭透明大页 Linux下的大页分为两种类型:标准大页(Huge Pages)和透明大页(Transpa ...
- linux 内存大页,Linux大页内存管理等---菜鸟初学
1. 查看linux的内存情况: free -m 2. 查看是否开启大页的方法: cat /proc/meminfo |grep -i HugePage AnonHugePages: 276480 k ...
- Linux之关闭大页【即关闭透明大页】
关闭大页[即关闭透明大页][Centos 7] 一.主要步骤 step 1.修改文件 [root@littlelawson conf]# echo never > /sys/kernel/mm/ ...
- 选股方法简单介绍及选股方法大力推荐
相信大家都知道,对于股民来说,选股毫无疑问是非常重要的!如果选股选错了的话,那么悲剧就注定难免了!下面为你介绍一下选股方法大力推荐以及选股方法简单介绍,如果想要了解更多选股方法方面的知识,敬请关注QR ...
最新文章
- “神经网络”的逆袭:80年AI斗争史
- Silverlight与JavaScript通信
- Excel图表横坐标设置怎么做?(亲测)
- 计算机如何打开无线网络适配器,win7系统下网络适配器打不开怎么解决
- [css] 一个页面引用多个文件,如何防止样式冲突?
- 【数据结构与算法】二分查找
- 反馈电路中相位补偿,到底是什么鬼?
- 重磅 | 数据库自治服务DAS论文入选全球顶会SIGMOD,领航“数据库自动驾驶”新时代
- html 表格行排序,用客户端HTML表格排序对行进行分组
- 0830通用问题解决
- PancakeBunny获160万美元战略融资,Binance Labs领投
- 荣耀手表gspro会用鸿蒙,真实使用荣耀手表GS Pro功能用2个月评测反馈!一定看看如何!...
- c++下字符串分割函数split实现
- elisa数据处理过程图解_ELISA操作流程
- 腾讯云即时通讯im之获取userSig
- 人工智能迅猛发展,如何应对避免失业?
- 量化交易系统之python+mysql(二)
- 小偷涂鸦 java_用Java做一个涂鸦板
- Mac新手操作指南(三)
- 8、开发工具软件 - 软件技术系列文章
热门文章
- thinkphp的匹配php后缀,ThinkPHP的后缀操作方法配置 罢工了
- python pdb_python pdb调试方法分享
- linux ubuntu 桌面,Ubuntu Linux 入门(三):熟悉 Ubuntu Linux 桌面环境
- ios开发text kit_iOS富文本(三)深入使用Text Kit
- 2021年新高考八省联考成绩查询辽宁,辽宁八省联考成绩什么时候出 辽宁八省联考成绩查询入口...
- sqlalchemy mysql教程_python使用SQLAlchemy操作MySQL
- vrp车辆路径问题 php,车辆路径问题
- textisselectable长按再点击_微信朋友圈如何发布长视频?原来打开这个功能就可以,涨知识了...
- sql server 替换有反斜杠的字符串_SQL注入思维导图
- 简书markdown支持html,简书上使用Markdown(超详细)