x86(包括x86-32x86-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)简单介绍相关推荐

  1. 机器视觉的9大快速开发库简单介绍

    目录 一.开源的OpenCV 二.VisionPro®7.0系统,快速开发强大的应用系统 快速建立原型和易于集成 先进的机器视觉软件 硬件灵活性 技术优势 VisionPro 的软件结构 关于康耐视( ...

  2. 内存虚拟化、内存复用、大页内存作用及详解

    内存虚拟化.内存复用.大页内存作用及详解 1. 内存虚拟化 2. 内存复用 2.1. 内存共享 2.2. 内存置换 2.3. 内存气泡 3. 大页内存 3.1. 大页内存原理 3.2. 大页内存配置 ...

  3. 透明大页相关内核参数_Alibaba Cloud Linux 2系统中与透明大页THP相关的性能调优方法...

    免责声明:本文档可能包含第三方产品信息,该信息仅供参考.阿里云对第三方产品的性能.可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺. 概述 本文主要介绍在Alibaba Cloud Li ...

  4. Linux一个内存大页多大,Linux中的“大内存页”(hugepage)是个什么?

    学习 Linux 中的大内存页hugepage.理解什么是"大内存页",如何进行配置,如何查看当前状态以及如何禁用它. 本文中我们会详细介绍大内存页huge page,让你能够回答 ...

  5. 【内存】Linux 页表、大页与透明大页|大页内存

    目录 页表与MMU CPU访问的是什么地址(虚拟地址,物理地址)? MMU如何工作 MMU对内存的保护 多级页表 一. 内存映射与页表 1. 内存映射 2. 页表 4. 页表的简单工作原理 大页 什么 ...

  6. 透明大页相关内核参数_Linux7.4 关闭透明大页

    1 THP 背景知识补充说明 在Linux6.x之后的平台,在安装Oracle数据库的时候都建议关闭透明大页 Linux下的大页分为两种类型:标准大页(Huge Pages)和透明大页(Transpa ...

  7. linux 内存大页,Linux大页内存管理等---菜鸟初学

    1. 查看linux的内存情况: free -m 2. 查看是否开启大页的方法: cat /proc/meminfo |grep -i HugePage AnonHugePages: 276480 k ...

  8. Linux之关闭大页【即关闭透明大页】

    关闭大页[即关闭透明大页][Centos 7] 一.主要步骤 step 1.修改文件 [root@littlelawson conf]# echo never > /sys/kernel/mm/ ...

  9. 选股方法简单介绍及选股方法大力推荐

    相信大家都知道,对于股民来说,选股毫无疑问是非常重要的!如果选股选错了的话,那么悲剧就注定难免了!下面为你介绍一下选股方法大力推荐以及选股方法简单介绍,如果想要了解更多选股方法方面的知识,敬请关注QR ...

最新文章

  1. “神经网络”的逆袭:80年AI斗争史
  2. Silverlight与JavaScript通信
  3. Excel图表横坐标设置怎么做?(亲测)
  4. 计算机如何打开无线网络适配器,win7系统下网络适配器打不开怎么解决
  5. [css] 一个页面引用多个文件,如何防止样式冲突?
  6. 【数据结构与算法】二分查找
  7. 反馈电路中相位补偿,到底是什么鬼?
  8. 重磅 | 数据库自治服务DAS论文入选全球顶会SIGMOD,领航“数据库自动驾驶”新时代
  9. html 表格行排序,用客户端HTML表格排序对行进行分组
  10. 0830通用问题解决
  11. PancakeBunny获160万美元战略融资,Binance Labs领投
  12. 荣耀手表gspro会用鸿蒙,真实使用荣耀手表GS Pro功能用2个月评测反馈!一定看看如何!...
  13. c++下字符串分割函数split实现
  14. elisa数据处理过程图解_ELISA操作流程
  15. 腾讯云即时通讯im之获取userSig
  16. 人工智能迅猛发展,如何应对避免失业?
  17. 量化交易系统之python+mysql(二)
  18. 小偷涂鸦 java_用Java做一个涂鸦板
  19. Mac新手操作指南(三)
  20. 8、开发工具软件 - 软件技术系列文章

热门文章

  1. thinkphp的匹配php后缀,ThinkPHP的后缀操作方法配置 罢工了
  2. python pdb_python pdb调试方法分享
  3. linux ubuntu 桌面,Ubuntu Linux 入门(三):熟悉 Ubuntu Linux 桌面环境
  4. ios开发text kit_iOS富文本(三)深入使用Text Kit
  5. 2021年新高考八省联考成绩查询辽宁,辽宁八省联考成绩什么时候出 辽宁八省联考成绩查询入口...
  6. sqlalchemy mysql教程_python使用SQLAlchemy操作MySQL
  7. vrp车辆路径问题 php,车辆路径问题
  8. textisselectable长按再点击_微信朋友圈如何发布长视频?原来打开这个功能就可以,涨知识了...
  9. sql server 替换有反斜杠的字符串_SQL注入思维导图
  10. 简书markdown支持html,简书上使用Markdown(超详细)