在Linux上配置HugePages

有时候在Linux上使用Oracle的时候,为了提高性能,往往会配置HugePages。这里仅说明如何配置HugePages,至于对HugePages的用处和为什么需要配置有兴趣的同学可以参考MOS:HugePages on Linux: What It Is… and What It Is Not… (文档 ID 361323.1)

配置步骤如下:
1、编辑/etc/security/limits.conf文件并设置menlock。memlock是以kb为单位,设置的值一般小于安装的内存。例如,在安装时使用64GB 内存,增加以下语句锁定最大内存限制:

2、重新登陆oracle用户并运行以下语句验证memlock设置:

运行以下命令显示Hugepagesize 值:
3、如果你使用的是Oracle 11g或之后的版本,默认在建库时是采用Automatic Memory Management(AMM)特性,这是和HugePages冲突的,如果需要使用HugePages,则必须先禁用AMM。设置参数MEMORY_TARGET和MEMORY_MAX_TARGET为0。
4、确保所有数据库实例(包含ASM实例)都已经是开启,使用下述脚本计算当前共享内存段hugepages推荐值:
创建脚本hugepages_settings.sh

脚本内容如下:

输出结果:

For 2.4 kernel systems:

For 2.6 and 3.8(UEK3) kernel systems:

5、修改内核参数
编辑/etc/sysctl.conf,设置vm.nr_hugepages参数:

6、关闭数据库实例并重启服务器

One Reply to “在Linux上配置HugePages”

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.