ITPub博客

首页 > Linux操作系统 > Linux操作系统 > AIX上pin住Oracle的SGA的方法

AIX上pin住Oracle的SGA的方法

原创 Linux操作系统 作者:oracle_ace 时间:2008-01-10 15:11:52 0 删除 编辑

Performance测试过程中,我们在新部署的AIX上都是通过设置操作系统的v_pinshm,maxpin%参数以及Oracle中的lock_sga等参数,将oracle SGA pin在内存中,目的就是为了防止这部分内存交换出去。通过pin住oracle SGA在一定程度上提高了我们数据库的性能。在做对比测试的时候可以突出一点点instance tuning的作用。

对于这些参数的设置方法如下:

1、操作系统参数v_pinshm=1,默认是0,表示aix将支持pin住内存,设置方法为

#vmo -p -o v_pinshm=1 当然也可以通过smitty

2、操作系统参数maxpin%=内存百分比,默认是80%,表示支持的最大的可pin住内存的比例,在我们performance测试的过程中,我们将这个设置为

#vmo -p -o maxpin%=90 当然也可以通过smitty

3、设置oracle参数LOCK_SGA=true,表示oracle将会使用这部分被OS pin住的内存.

因为这部分pin住的内存不仅仅是oracle在使用,aix内核也可能需要用到这部分内存,所以,我们不能设置SGA超过如下2个公式的范围:

1、SGA < 总内存*(maxpin%-10%),如果maxpin%是80%的默认值,也就是maxpin%=80%,则SGA不能超过总内存的70%

2、OS的pin住Oracle稳定运行的内存总量 < 总内存*(maxpin%-5%),如果maxpin%是80%的默认值,则pin住的内存总量,不能超过总内存的75%

至于Oracle的SGA总量,可以通过如下命令查看

SQL> select sum(value)/1024/1024/1024 "SIZE(G)" from v$SGA;
 
   SIZE(G)
----------
   1.28125

至于被pin住的内存总量,可以通过OS的命令svmon来查看

# svmon -G
               size      inuse       free        pin    virtual
memory       983040     724686     258354     430433     521412
pg space     655360       2108

               work       pers       clnt
pin          430433          0          0
in use       521412          0     203274


关于以上2个公式,在5.2的早些版本中,只需要满足公式1即可,如果实际设置的SGA内存超过了公式1的范围,其实OS也只pin住maxpin%-10%的内存,其它的没有pin住的内存,可能会导致交换的发生,最多是影响性能。

但是,aix 5.2以后的一些版本以及aix 5.3版本,因为不同page size的出现(如64K的page size的大量使用),如果不符合以上的两个公式,最严重的后果就是会导致OS被hang住,其实也就是aix的一个新的psm后台进程,一个负责页面转换的进程,当发现内存不够的时候,会直接杀掉运行的进程。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12361284/viewspace-133965/,如需转载,请注明出处,否则将追究法律责任。

上一篇: PRE_PAGE_SGA 的玩法
请登录后发表评论 登录
全部评论

注册时间:2007-12-10

  • 博文量
    284
  • 访问量
    787579