码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 在Linux下HugePage的配置

时间:2018-08-19 20:58:28      阅读:435      评论:0      收藏:0      [点我收藏+]

标签:所有者   手工   包括   acl   节点   gre   大于   lock   pre   

因为自从接触Oracle依赖,生产环境用的一般是Aix系统,在Aix下没有听说过关于HugePage的相关概念。最近处理了一个关于Suse Linux下HugePage的问题。当时排查的方向如下:

  • 当客户在单个节点做压力测试时,物理内存为256G,随着压力测试的继续,内存使用率会飙升到100%,最终导致系统挂起。
  • 当时在排查的时候,考虑到SGA已经限定为135G,pga_aggregate_limit大小为45G(在12C中此参数为硬性指标,当占用的pga达到此参数设定的大小,连接会断开)。正常情况下,数据库使用的内存不会超过190G。
  • 且通过给v$process查看PGA_ALLOC_MEM的SUM总和大小不超过5G。

后来最终定位到HugePage的问题,通过调整memlock最终解决。

下面来看一下在Linux下如何配置HugePage:

1.设置memlock参数:

设置的/etc/security/limits.conf文件memlock用户限制。设定值(单位为KB)略小于OS安装的RAM,大于将要分配给oracle的内存总量。
例如如果服务器配置了256GB=264511244KB的内存,你可以设置:264511244*0.8=211608995。
#vi /etc/security/limits.conf
...
oracle   soft   memlock    211608995
oracle   hard   memlock   211608995

重新登录到Oracle产品所有者帐户(例如‘oracle‘),检查memlock限制。 $ ulimit -l 211608995

2.修改vm.nr_hugepages参数

确保所有的数据库实例(包括ASM实例)都已启动。手工计算vm.nr_hugepages>=SGA_Target/Hugepagesize(2M)
如:SGA=143G, vm.nr_hugepages=(143+2)*1024/2=74240
用户编辑文件/etc/sysctl.conf设置vm.nr_hugepages参数:
#vi /etc/sysctl.conf
...
vm.nr_hugepages = 74240
修改后,使参数立即生效
sysctl -p

 

Oracle 在Linux下HugePage的配置

标签:所有者   手工   包括   acl   节点   gre   大于   lock   pre   

原文地址:https://www.cnblogs.com/dayu-liu/p/9502528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!