为Linux版本Oracle 11gR2配置HugePage

HugePageOracle在Linux版本下一种性能优化手段。对于共享内存区域(SGA)的数据库系统,Oracle通常都推荐在操作系统层面配置上HugePage,为Oracle实例准备更大的可用共享内存和整块的内存。

本文主要介绍在Oracle 11gR2版本上,进行HugePage配置全过程。记录下来,共需要的朋友待查。

使用HugePages优化内存性能

PF_RING Libzero中使用HugePage

Oracle 大内存需要配置HugePage

在Oracle 11.2.0.3.0上开启大页(HugePages)的详细解析

Linux HugePages及MySQL 大页配置

Linux HugePage 特性

1、环境介绍

笔者使用Oracle 11gR2系统,具体版本为11.2.0.4。

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

PL/SQL Release 11.2.0.4.0 - Production

CORE    11.2.0.4.0    Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 – Production

当前数据库配置内存策略为ASMM,也就是分别设置PGA和SGA的大小范围。Oracle根据负载情况动态自己调节内部各个子池的空间。注意:在当前版本中,AMM(Automatic Memory Management)和HugePage之间还是不能兼容。所以,如果要求配置HugePage,就只能退而求其次选择ASMM。

数据库设置的SGA空间如下:

SQL> show parameter sga;

NAME                                TYPE        VALUE

------------------------------------ ----------- ------------------------------

lock_sga                            boolean    FALSE

pre_page_sga                        boolean    FALSE

sga_max_size                        big integer 12G

sga_target                          big integer 12G

12G的SGA,Oracle在启动过程中,针对大内存情况给出了提示在alert log中。

ue Jan 12 11:31:33 2016

Starting ORACLE instance (normal)

************************ Large Pages Information *******************

Per process system memlock (soft) limit = 64 KB

Total Shared Global Region in Large Pages = 0 KB (0%)

Large Pages used by this instance: 0 (0 KB)

Large Pages unused system wide = 0 (0 KB)

Large Pages configured system wide = 0 (0 KB)

Large Page size = 2048 KB

RECOMMENDATION:

Total System Global Area size is 12 GB. For optimal performance,

prior to the next instance restart:

1. Increase the number of unused large pages by 

at least 6145 (page size 2048 KB, total size 12 GB) system wide to

get 100% of the System Global Area allocated with large pages

2. Large pages are automatically locked into physical memory.

Increase the per process memlock (soft) limit to at least 12 GB to lock

100% System Global Area's large pages into physical memory

首先Oracle发现当前系统并没有设置HugePage,只有默认的2M大小的Page可选。于是,从建议的角度,给出了提示意见,建议开启HugePage选项在操作系统层面。此时,操作系统层面也没有专门的设置。

[oracle@PROD_PC-DB trace]$ grep Huge /proc/meminfo

AnonHugePages:    36864 kB

HugePages_Total:      0

HugePages_Free:        0

HugePages_Rsvd:        0

HugePages_Surp:        0

Hugepagesize:      2048 kB

2、配置HugePage

在11.2的小版本中,HugePage处理的行为其实是在变化的。在11.2.0.2中,Oracle推出了一个参数use_large_page,作为从实例层面控制Oracle使用Huge Page的开关。

SQL> show parameter large_pages

NAME                                TYPE        VALUE

------------------------------------ ----------- ------------------------------

use_large_pages                      string      TRUE

该参数默认取值为true,是一种向上最优策略。如果设置为true,Oracle实例会去检查是否操作系统开启了HugePage,如果有就采用,如果没有就不用。另外两个取值分别为false和only,如果选择为false,表示Oracle实例不管操作系统设置,都不会使用HugePage。如果选择为only,就表示Oracle实例只会选择HugePage上运行。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/243055373ee226326cc997ef51d06dc7.html