如果像生产系统,SGA的空间,尽量要pin到OS 的memory 里面。减少内存掷出。
传统的掷出memory 是swap,这就涉及到虚拟内存地址和物理内存地址的映射关系。为了减少这样CPU的寻址,就有了,尽量把常用的数据keep到内存中。传统的掷出是4k的交换,但是,这样的效率是在不高。所以,我门有了hugepage的感念。默认一页是2M,hugepage 的单位是页数。如果,你的SGA是2G,那么,就要把huagepage设为1028,至少比SGA多个一两个页。这样,就保证了SGA能一直pin在物理内存中。
设置简单有三部。
1.在/etc/sysctl.con 里面,加上,vm.nr_hugepages = 1028 . sysctl -p 使之生效
2.设定/etc/security/limits.conf文件,以K为单位,必须大于sga_max_size,这里设定为2056000
3.在Oracle层面,启动使用hugepage的功能。
show parameter pre_page_sga
alter system set pre_page_sga=true scope=spfile;
Setting it to "false" means do not use hugepages
原文连接:http://blog.csdn.net/guoyjoe/article/details/17138391
http://blog.csdn.net/leshami/article/details/8788825