12c的数据库在安装的时候,有一个检查项目,叫做Maximum locked memory check。

这是要求设置/etc/security/limits.conf中的memlock的值,官方文档在11g要求是设置比物理内存稍小的一个值,在12c中要求至少为90%的物理内存。

而memlock的设置,是启用huge page的一部分。开启hugepage在大内存大sga的环境下,可以提供系统的性能。

启用hugepage需要设置/etc/security/limits.conf和vm.nr_hugepages(Doc ID 361468.1)

注1:

在asm中,当启用hugepage时oracle建议asm的SGA增大到至少2G,设置hugepage至少1300个以上的大页面(Doc ID 2111010.1)

在Exadata中,默认启用了hugepage,且安装Exadata的时候,就默认禁用了asm的AMM(PGA不使用hugepage,这也是为什么使用hugepage不能同时使用AMM,只能使用ASMM的原因。因为AMM是自动管理SGA+PGA。而hugepage不能被PGA使用。),设置了SGA大小为2G。(Doc ID 1681467.1)。

上述的大小只是一个大概的估算值,如果需要计算大小,也是可以计算的。asm的shared pool的大小,在150M的基础上,external冗余的disks,每增加100G的空间大小,需要额外的1M内存(Doc ID 437924.1)

注2:

在12c中grid中多了一个MGMTDB来记录GI资源信息,这个DB的SGA使用,也要考虑看hugepage的配置中。不过由于mgmtdb不确定会跑在那个节点上,在Exadata的health check检查项目中,是建议把mgmtdb使用hugepage属性关闭的。(Doc ID 1274318.1)

注3:

还有一个参数pre_page_sga,在9i~11g中默认值是false,在12c中默认值是true。在12c之前,默认值false可以避免在进程启动时,access sga中所有的page页面加快进程的启动速度(见connection management call elapsed time)。而在12.1之后,算法发生了改变,设置为true和false几乎没有差别。

注4:

上面说的hugepages,指的是regular hugepages,而对于transparent hugepages,我们是需要禁用的。见Disable Transparent HugePages on SLES11, RHEL6, RHEL7, OL6, OL7, and UEK2 and above (Doc ID 1557478.1)。

regular hugepages是提前分配,不是动态分配,transparent hugepages是通过khugepaged线程动态配置的,这可能会导致Oracle运行过程中出现一些奇怪的问题,Oracle建议关闭Transparent HugePages功能。

注5:

放在small pages上的sga,不会直接占用物理内存(这样应该是在page fault时才会申请物理内存)。即ipcs -am看到占用的内存的是在vm中,不是在RSS中,实际物理内存中。

所以:
(1)oracle推荐在大内存大sga的情况下,使用hugepage。文档上说是大于8G物理内存(Doc ID 361468.1);在实际使用中,客户如果超过64G内存,我们一般都推荐使用。

(2)对于asm我们可以设置sga至少2G,同时注意要求至少1300个以上的大页面。

(3)对于mgmtdb,我们可以设置use_large_pages=false禁用mgmtdb使用hugepage。

(4)如果多个数据库共享一个主机,但是如果我们提前把hugepage的配置能覆盖到所有instance,那么就不存在什么问题。在11g中,有use_large_page参数,默认值为true。即默认尝试配合OS使用hugepage。但是在11.2.0.2的时候,如果hugepage不够cover sga,会导致数据库启动不了。在11.2.0.3以后,oracle会在hugepage不够的情况下,将使用small page来弥补剩余的page,从而启动数据库(Doc ID 1392497.1)

(5)禁用transparent hugepages(Doc ID 1557478.1)


本文来自云栖社区合作伙伴“DBGEEK”

Huge page使用的一些问题相关推荐

  1. huge page 能给MySQL 带来性能提升吗?

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 转自公众号:yangyidba 一 前言 最近一直在做性能压测相关的事情,有公众号的读者朋友 ...

  2. 大页(Huge Page)简单介绍

    x86(包括x86-32和x86-64)架构的CPU默认使用4KB大小的内存页面(getconf PAGESIZE),但是它们也支持较大的内存页,如x86-64系统就支持2MB大小的大页(huge p ...

  3. PostgreSQL Huge Page 使用建议 - 大内存主机、实例注意

    标签 PostgreSQL , Linux , huge page , shared buffer , page table , 虚拟地址 , 物理地址 , 内存地址转换表 背景 当内存很大时,除了刷 ...

  4. 技术实践丨PostgreSQL开启Huge Page场景分析

    PostgreSQL用户经常发现,服务端在连接数较大的情况下,会出现系统内存消耗过多的情况,严重者可能会造成OOM.但是服务端配置的共享内存(shared_buffers,wal_buffers等)是 ...

  5. PostgreSQL Huge Page使用最佳实践

    对于重度依赖于内存的应用数据库而言,hugepage是经常会被使用的.例如在Oracle中我们一般建议当SGA大于8GB时使用hugepage,而在postgresql中我们也建议当内存较大的时候开启 ...

  6. 理想的 huge page

    背景 现代计算机的内存越来越大,服务器动辄就有上百GB,甚至 TB 级别的内存,很多应用已经可以把全部数据都放入内存,这样,磁盘空间换取内存空间这个传统中虚拟内存最重要的需求已经相当弱化甚至不复存在. ...

  7. linux那些事之page cache

    page cache page cache又称高速缓存,主要是针对文件文件系统,为了减少不必要的磁盘IO操作(读/写)造成卡顿问题,内核将磁盘文件中的内容缓存到内存中,并选择适当时机对磁盘进行读写操作 ...

  8. linux那些事之page fault(AMD64架构)(user space)(2)

    do_user_addr_fault 用户空间地址处理是page fault主要处理流程,x86 64位系统主要是do_user_addr_fault()函数 该处理部分是x86架构特有部分 即与架构 ...

  9. linux那些事之 page translation(硬件篇)

    Page Translation 以<AMD64 Architecture Programmer's manual volums>从硬件角度说明一个虚拟地址如何转成对应物理页.AM64 地 ...

最新文章

  1. xp精简工具_Windows10你也可以精简优化,丝滑般极爽轻松做到,再也不卡了
  2. 手机在线测试黄疸软件,在家怎么用手机测黄疸
  3. [rsync] linux rsync 安装
  4. paip..net VS2010提示当前上下文中不存在名称的解决
  5. Openstack学习笔记(十五)-Horizon源代码学习笔记(五)
  6. JQuery快速入门详解
  7. latex各类符号(红心、方块、五角星等)集合
  8. 为什么现在大多数服务器使用linux系统区别的一些总结
  9. C语言程序设计简谐运动的模拟,C语言课程设计简谐振动实验的模拟.doc
  10. 随机手机号码_微信绑定了手机号码怎么解绑
  11. 吉信通php 短信配置,吉信通:手机APP为什么要用短信验证?
  12. MFC-CString
  13. eclipse打开时报错:
  14. OpenCV:将一幅图像复制到另一幅图像的指定区域中ROI
  15. win7计算机右键属性桌面进程重启,Win764位系统电脑自动重启的分析与解决步骤...
  16. 牛客-埃森哲杯第十六届上海大学程序设计联赛-A-Wasserstein Distance
  17. java常用类库---对象克隆技术
  18. Hadoop安装教程_单机伪分布式配置_Hadoop2.6.0(2.7.1)Ubuntu14.04(16.04)
  19. 利用AT89C52定时器输出可调PWM
  20. 2个月之差,你错过了一个百万富翁!

热门文章

  1. 推荐算法之用户推荐(UserCF)和物品推荐(ItemCF)对比
  2. SQL Sever 错误和异常处理
  3. SVN文件上感叹号、加号、问号等图标的原因
  4. html 进度条roll,js实现增加数字显示的环形进度条效果
  5. 电脑应用程序错误怎么办_遇到电脑桌面应用程序无法正常启动(0xc0000142)怎么办?0xc0000142解决方法...
  6. 2020年最新程序员职业发展路线指南,超详细!
  7. M - 简单字符串排序
  8. c语言红警源代码,真香!红警游戏源代码开源了,70,80,90最好的游戏
  9. php由哪几部分组成,微型计算机通常是由哪几部分组成?
  10. php 地图 显示 客户位置_网站SEO优化_PHP程序网站怎么做优化 _SEO优化|SEO推广|SEO服务|上海SEO...