当前位置: 网站首页>>技术交流>>正文
怎么改变AIX上使用oracle的一些限制
2017-10-11 09:17  

 

1、需要修改用户能打开的最大进程数目 

默认每个用户最大只能打开128个进程数目,而oracle用户一般需要打开上千个进程。 

#chdev -l sys0 -a maxuproc=’2000′ 

sys0 changed 

以上修改,可以通过如下命令来查看 

#lsattr -El sys0 

2、修改用户限制 

主要是Oracle用户,可以通过如下命令查看当前限制 

$ulimit -a 

time(seconds) unlimited 

file(blocks) 4194302 

data(kbytes) unlimited 

stack(kbytes) 4194304 

memory(kbytes) unlimited 

coredump(blocks) 4194302 

nofiles(descriptors) 4000 

具体信息可以参考如下文件 

#more /etc/security/limits 

…… 

default: 

fsize = 2097151 

core = 2097151 

cpu = -1 

data = 262144 

rss = 65536 

stack = 65536 

nofiles = 2000 

…… 

oracle: 

fsize = 4194302 

core = 4194302 

data = -1 

rss = -1 

stack = -1 

nofiles=4000 

注意,-1是无限制 

要修改如上限制,可以采用命令如 

#chuser data=’-1′rss=’-1′stack=’-1′oracle 

#chuser nofiles=4000 oracle 

或者是smitchuser来操作 

3、修改系统参数 

主要是性能需要内存管理 

#vmo -p -o v_pinshm=1 #Oracle需要,pin住SGA的需要 

#vmo -p -o minperm%=5 #百分比%,文件系统cache最小内存使用 

#vmo -p -o maxclient%=20 #百分比%,jfs2与nfs最大文件系统cache使用 

#vmo -p -o maxperm%=20 #百分比%,普通文件系统最大文件系统cache使用 

#vmo -p -o minfree=1200 #120*cpu个数,内存空闲 

#vmo -p -o maxfree=1280 #128*cpu个数,内存空闲 

内存管理可选 

#vmo -p -o strict_maxperm=0 #默认是0,建议不要改到1,1为硬限制,可能会触发bug 

#vmo -p -o strict_maxclient=0 #默认1,可以改为0,一般不改 

文件系统 

#ioo -p -o j2_nBufferPerPagerDevice=512 

ha的需求,HA情况下建议修改,但也不是强行要求 

#no -p -o routerevalidate=1 

#no -p -o tcp_finwait2=240 

#no -p -o tcp_recvspace=262144 

#no -p -o tcp_sendspace=262144 

#no -p -o rfc1323=1 

其中,-p表示修改对当前与重新启动生效,如果只能重新启动或者重新连接生效的,将提示重起或者重新连接后生效,如果是-r参数,则表示只是重新启动后生效。修改结果可以参考文件 

#more /etc/tunables/nextboot 

# IBM_PROLOG_BEGIN_TAG 

# This is an automatically generatedprolog. 

# bos520src/bos/usr/sbin/perf/tune/nextboot 1.1 

# Licensed Materials - Property of IBM 

# (C) COPYRIGHT International BusinessMachines Corp. 2002 

# All Rights Reserved 

US Government Users Restricted Rights -Use, duplication or 

# disclosure restricted by GSA ADP ScheduleContract with IBM Corp. 

# IBM_PROLOG_END_TAG 

vmo: 

minfree = "1440″ 

maxfree = "1536″ 

maxperm% = "20″ 

maxclient% = "20″ 

minperm% = "5″ 

v_pinshm = "1″ 

ioo: 

j2_nBufferPerPagerDevice = "512″ 

no: 

routerevalidate = "1″ 

tcp_finwait2 = "240″ 

tcp_recvspace = "262144″ 

tcp_sendspace = "262144″ 

rfc1323 = "1″ 

4、设置AIXTHREAD_SCOPE=S 

控制争用作用域。P意味着基于进程的争用作用域(M:N)。S意味着基于系统的争用作用域(1:1)。 

echo $AIXTHREAD_SCOPE(这是由内部打开的,因此初始的缺省值不可以由命令echo看到) 

AIXTHREAD_SCOPE={P|S},用命令export AIXTHREAD_SCOPE ={P|S}更改会在shell中立即生效。在退出这个shell之前一直有效。当加上命令AIXTHREAD_SCOPE={P|S}到文件/etc/environment时会产生持久的变化,在ORACLE9i Aix 4.3 or Aix 5.1的环境下,设置该变量可以大幅度的减少进程内存的使用量,在Aix 5.2以上,请参考另外一种方法,IY49415 Oracle patch p3028673,详细信息参考oracle bug 3028673 

更多0 

上一条:就是删不掉!顽固的Thumbs究竟是什么?
下一条:局域网最常见十大错误及解决
关闭窗口