内存页的大小默认是4K,在大内存下内存页的数量会非常多,管理起来开销会很大。采用hugepages技术,内存页增加到2M,极大的减少了内存管理中映射表的条目,提高了效率。更重要的是,实现了各进程间的页表(page tables)共享,降低了高并发进程占用过多的内存。oracle11.2.0.3下hugepages的设置步骤也很简单:
1、通过free命令查看当前系统内存大小,然后在/etc/security/limits.conf中增加两行
oracle soft memlock 内存大小(free命令查看到的mem值)
oracle hard memlock 内存大小
2、oracle从AMM切换到ASMM。
create pfile from spfile;将pfile中memory_max_target、memory_target两个参数删除。
shutdown immediate
startup pfile=‘xxx'
修改好sga、pga等参数,create spfile from pfile;
shutdown immediate
startup
3、在oracle用户下,使用oracle推荐的hugepages_settings.sh脚本计算系统需要设置的hugepage数目。
手工计算也可,sga的值(M)除以2,再加上2。
在/etc/sysctl.conf中增加vm.nr_hugepages=计算结果。
4、重启服务器(执行sysctl -p 也可让内核参数生效)。
11.2.0.3版本的oracle会自动优先使用hugepage内存。
hugepage不会被swap,也不能被其它进程共享,所以不可设置过大,跟sga_max_target一样大即可。











网友评论