Huge page使用的一些问题

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)


时间: 2024-09-22 08:43:52

Huge page使用的一些问题的相关文章

Facebook专家:Huge Page是否为拯救性能的万能良药?

准备知识   在阅读本文之前,需要读者至少了解以下基础知识:   CPU Cache的基本概念. NUMA的基本概念. 目前Linux基于多核CPU繁忙程度的线程调度机制,参看Chip Multi Processing aware Linux Kernel Scheduler论文.   一.关于Huge Page   在正式开始本文分析前,我们先大概介绍下Huge Page的历史背景和使用场景.   为什么需要Huge Page    了解CPU Cache大致架构的话,一定听过TLB Cach

Linux传统Huge Pages与Transparent Huge Pages再次学习总结

  Linux下的大页分为两种类型:标准大页(Huge Pages)和透明大页(Transparent Huge Pages).Huge Pages有时候也翻译成大页/标准大页/传统大页,它们都是Huge Pages的不同中文翻译名而已,顺带提一下这个,免得有人被这些名词给混淆.误导了.Huge Pages是从Linux Kernel 2.6后被引入的.目的是使用更大的内存页面(memory page size) 以适应越来越大的系统内存,让操作系统可以支持现代硬件架构的大页面容量功能.透明大页

Linux 关于Transparent Hugepages的介绍

透明大页介绍 Transparent Huge Pages的一些官方介绍资料: Transparent Huge Pages (THP) are enabled by default in RHEL 6 for all applications. The kernel attempts to allocate hugepages whenever possible and any Linux process will receive 2MB pages if the mmap region is

Linux系统性能指标

Linux内核提供的/proc/目录所提供的信息能够基本满足我们对当前主机性能指标的获取需求.现有网络上流传很多版本的对/proc/下文件各字段解释的blog,存在很多错误.本文结合最权威linux内核官方文档Linux Programer's Manual解释/proc/stat各字段的含义,原文档请参考:http://man7.org/linux/man-pages/man5/proc.5.html. 1.linux性能数据来源 1.1.cpu实时性能数据 /proc/stat 通过/pro

精确度量Linux下进程占用多少内存的方法

在Linux中,要了解进程的信息,莫过于从 proc 文件系统中入手去看.proc的详细介绍,可以参考内核文档的解读,里面有很多内容 yum install -y kernel-doc cat /usr/share/doc/kernel-doc-3.10.0/Documentation/filesystems/proc.txt 主要内容 Table of Contents ----------------- 0 Preface 0.1 Introduction/Credits 0.2 Legal

亲密接触Redis-第二天(Redis Sentinel)

简介 经过上次轻松搭建了一个Redis的环境并用Java代码调通后,这次我们要来看看Redis的一些坑以及Redis2.8以后带来的一个新的特性即支持高可用特性功能的Sentinel(哨兵). Redis的一些坑 Redis是一个很优秀的NoSql,它支持键值对,查询方便,被大量应用在Internet的应用中,它即可以用作Http Session的分离如上一次举例中的和Spring Session的结合,还可以直接配置在Tomcat中和Tomcat容器结合并可以自动使用Redis作Session

TNS-12518 & Linux Error:32:Broken pipe

最近一周,有一台ORACLE数据库服务器的监听服务在凌晨2点过几分的时间点突然崩溃,以前从没有出现过此类情况,但是最近一周出现了两次这种情况,检查时发现了如下一些信息: $ lsnrctl services   LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 12-DEC-2014 08:22:34   Copyright (c) 1991, 2007, Oracle.  All rights reserved.   Connectin

阿里云HybridDB for PostgreSQL内存与负载管理(resource queue)实践

标签 PostgreSQL , Greenplum , 阿里云HybridDB for PostgreSQL , 内存管理 , OOM , 操作系统内核参数 , 资源队列 , 数据库内存保护参数 背景 Greenplum是一个重计算和重资源的MPP数据库,可谓有多少资源就能消耗多少资源,带来的好处是处理速度变快了,坏处就是容易用超. CPU.网络.硬盘用超的话,关系不大,因为大不了就是到硬件瓶颈,但是内存用超的话会带来较大的负面影响,例如操作系统OOM用户进程,导致数据库崩溃等. 如果要达到非常

RocketMQ into the 500,000-TPS Message Club

Foreword The Alibaba Cloud messaging team devoted to RocketMQ performance optimization has reached new heights in recent times with the latest TPS for medium-sized and small messages in RocketMQ by reaching 470,000. The TPS peak, once, detected on F4