研究开启大页实验

来源:互联网 发布:二进制转bcd码算法 编辑:程序博客网 时间:2024/05/22 06:59

研究开启大页实验

1、什么是大页,大页的作用

系统进程通过虚拟地址访问物理内存,物理内存与虚拟地址做一个一一映射的表存在CPU里面。没开启大页之前交换页的容量为4k,如果内存量大的话,映射的条目就会很多,CPU寻址时间就会多。

开启大页的目的是杜绝内存交换,因为大页会把SGA保留在内存中不被交换出来。

2、Oracle使用大页的条件

a) 开启AMM

b)  关闭pre_page_sga(有疑问)

c) sga_max_target和sga_target不能为0

3、计算大页,使数据库合理利用大页

a) 大页每页固定【2M/页】不可更改

b) 大页要比sga_max_target多一点(也不能过多)

c) 例子:SGA=208M,则vm.nr_hugepages=106

4、实验

SQL> show parameter sga

 

NAME                                TYPE        VALUE

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

lock_sga                            boolean     FALSE

pre_page_sga                        boolean     TRUE

sga_max_size                        big integer 208M

sga_target                           big integer 208M

 

vi /etc/sysctl.conf

加入vm.nr_hugepages=106

使内核更改生效:sysctl –p

 

vi /etc/security/limits.conf

加入:

oracle soft memlock 213000

oracle hard memlock 213000

查看是否生效:

su – oracle

[oracle@yuhaihua ~]$ ulimit -l

218000

 

关闭数据库退出sql,重载oracle用户,开启数据库观察大页是否产生:

 [root@yuhaihua ~]#  watch -n1 'cat /proc/meminfo |grep -iHugePage'

Every 1.0s: cat /proc/meminfo |grep -i HugePage         Wed Jun  4 16:16:56 2014

 

AnonHugePages:     20480 kB

HugePages_Total:     106---106页

HugePages_Free:        2  ---空闲2页

HugePages_Rsvd:        1 ---OS承诺给1页

HugePages_Surp:        0

Hugepagesize:       2048 kB---每页固定2M

总共使用了106-2=104页*2=208M=sga_target

208M+1*2约等于sga_max_target(为啥超了呢。。)

 

 

如今有两个疑问没有明白:

1、开启pre_page_sga时大页不起作用

2、208M+1*2约等于sga_max_target超了2M

0 0
原创粉丝点击