Out of Memory Problems on Oracle 10 / Solaris 10 ---修改内核参数
上一篇 / 下一篇 2008-12-19 16:13:43 / 个人分类:经验 & 总结
在solaris上安装oracle之前,我们都会设置系统的内核参数,在solaris 9及之前,我们都是通过修改/etc/system文件来进行修改的,但是从solaris 10开始,这些内核参数称为“resource controle",是需要通过prctl命令进行更改,有些朋友可能还是按照solaris 9的方式进行更改,当数据库使用的内存较大时,由于没有正确设置,可能会引起"out of memory"的错误。
Dnt'|Q I"`*h;W0
ITPUB个人空间+o*y/COScT4u T9hD
从solaris 10开始,对sem,shm的配置无法通过/etc/system文件来进行修改,更改方式如下:ITPUB个人空间&k3m.XFrc
1) 设置max-shm-memory的值为4GB:
0p"v't?/R N(fX0#projadd -U oracle –K "project.max-shm-memory=(priv,4096MB,deny)" user.oracleITPUB个人空间/JBTS9k+D7v tJ'\
查看设置是否生效:ITPUB个人空间bCs\1M\]
# cat /etc/project
0X4A'vB;Si-O.xrs0在project文件的末尾能够看到新增加的一行ITPUB个人空间X WM-Z D
user.oracle:100::oracle::project.max-shm-memory
H&@W I)nH0=(priv, 4294967296,deny)ITPUB个人空间9QO"o[1B,s
ITPUB个人空间0n#p7I"Y&j K X;a
2) 修改参数max-sem-idsITPUB个人空间s(Qb4uy2Gm
# projmod -s -K "project.max-sem-ids=(priv,256,deny)" user.oracle
8K*`Y(h j0
检查修改是是否生效
查看是否生效ITPUB个人空间bl1G/m+^*_
# su - oracleITPUB个人空间b:^y8pC tM
$ prctl –i project user.oracle
n6\'e'H)\0project: 100: user.oracleITPUB个人空间4du i$YdL:|C
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENTITPUB个人空间 `+L1Y"Ni(|;W
。。。。。。
.Ps0jpZe2oc0ITPUB个人空间c2K-d'm5v
project.max-shm-memory
p0[sLT0 privileged 4.00GB - deny -ITPUB个人空间!L:Y.d4V eyq/n Du
system 16.0EB max deny -
1o.] \^f0project.max-shm-idsITPUB个人空间cPlUyfi(~|iE
privileged 128 - deny -ITPUB个人空间;m;T+Z oz
system 16.8M max deny -
u'@kV0l0project.max-msg-ids
W Kc T5A,{&z0}~S(T0 privileged 128 - deny -
+a4e's8A_0 system 16.8M max deny -
,?7U6k6k2?EU:vK0project.max-sem-ids
+{,f`"Z U&I"G0 privileged 256 - deny -ITPUB个人空间'z%`;d z~M1w2h
system 16.8M max deny -
J?y0]A6Y~+r0
gp4M)p/C2I0。。。。。。
kKQ O#Nm0
T5bB;lk0除了设置sem,shm参数外,还需要在/etc/system中增加noexec_user_stack参数ITPUB个人空间3w,z%rbf1s Sf
# cp /etc/system /etc/system.orig
7@&A}9Lm%D X0Vi /etc/systemITPUB个人空间ne poo
set noexec_user_stack=1
'y1f,w#b!r5[0set shmsys:shminfo_shmmax=4294967296ITPUB个人空间B9nm X#eWT
ITPUB个人空间.YFkhE}
经验:
p!|u p ZO.a s01. 在solaris 10上安装10g rac时,曾经碰到当SGA设置过大时,导致重其后,有一些资源需要手工启动,因此,oracle官方建议把shmmax的参数也加到/etc/system文件下(可见Doc id : 399895.1 from metalink)ITPUB个人空间y!` P,QV5bny
set noexec_user_stack=1
G9x C-m d^z9L0set shmsys:shminfo_shmmax=4294967295
2. oracle metalink上曾经有两份文档,一份设置shmmax为4g,另一个设置shmmax为6g,最后,oracle还是建议设置4g较适合
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-584667/
,如需转载,请注明出处,否则将追究法律责任。