有时候在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 内存,增加以下语句锁定最大内存限制:
oracle soft memlock 60397977 oracle hard memlock 60397977
2、重新登陆oracle用户并运行以下语句验证memlock设置:
$ ulimit -l 60397977
运行以下命令显示Hugepagesize 值:
grep Hugepagesize /proc/meminfo
3、如果你使用的是Oracle 11g或之后的版本,默认在建库时是采用Automatic Memory Management(AMM)特性,这是和HugePages冲突的,如果需要使用HugePages,则必须先禁用AMM。设置参数MEMORY_TARGET和MEMORY_MAX_TARGET为0。
4、确保所有数据库实例(包含ASM实例)都已经是开启,使用下述脚本计算当前共享内存段hugepages推荐值:
创建脚本hugepages_settings.sh