AIX下RAC巡检文档
AIX下RAC巡检文档
2010年06月27日
现供职于计算机系统集成公司。 主要从事ORACLE数据库架构、迁移、备份、维护服务, UNIX平台小机、pcserver,存储的搭建、维护服务。 也负责提供BE、NBU、TSM等备份软件平台服务。
详细内容见我的资源(带图) 1> 查看操作系统(AIX 文件系统是否合理)
方式: " df -m ,查看所有的文件系统大小 是否>2G"
结果类似下面:
$df -m
Filesystem MB blocks Free %Used Iused %Iused Mounted on
/dev/hd4 2048.00 1980.01 4% 6837 2% /
/dev/hd2 10240.00 8068.59 22% 44971 3% /usr
/dev/hd9var 8192.00 7868.97 4% 7278 1% /var
/dev/hd3 4096.00 3496.39 15% 1019 1% /tmp
/dev/hd1 20480.00 15137.79 27% 3713 1% /home
/proc - - - - - /proc
/dev/hd10opt 20480.00 14830.66 28% 33118 1% /opt
/dev/arch1_lv 207360.00 207320.46 1% 5 1% /arch1
zzrac2:/arch2 208896.00 208858.72 1% 5 1% /arch2
解决方案:
如果不是,需要修改过小的fs
使用命令smitty chfs->change /show characteristic of an enhanced Journaled File System
修改对应的文件系统的大小
2> 查看操作系统是否打齐补丁( oslevel -s instfix -i )
方式:"oslevel s 或 insfix i |grep ML"
结果类似下面:
# oslevel -s 5300-10-02-0943 # instfix -i |grep ML All filesets for 5.3.0.0_AIX_ML were found. All filesets for 5300-01_AIX_ML were found. All filesets for 5300-02_AIX_ML were found. All filesets for 5300-03_AIX_ML were found. All filesets for 5300-04_AIX_ML were found. All filesets for 5300-05_AIX_ML were found. All filesets for 5300-06_AIX_ML were found. Not all filesets for 5300-07_AIX_ML were found. Not all filesets for 5300-08_AIX_ML were found. Not all filesets for 5300-09_AIX_ML were found. Not all filesets for 5300-10_AIX_ML were found. # oslevel -s 5300-06-12-0920 解决方案:
如果不是,则查看到目前版本需要哪些补丁包,(oslevel rl 5300-10,并通过smitty installp来升级补丁包)
oslevel -rl 5300-10
3>查看操作系统的rootvg 是否做了mirror ("lsvg -l rootvg"),查看LPS 和PPS是不是1对2的关系
方式:"lsvg -l rootvg"
类似结果:
# lsvg -l rootvg
rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 1 1 closed/syncd N/A
hd6 paging 32 32 1 open/syncd N/A
hd8 jfs2log 1 1 1 open/syncd N/A
hd4 jfs2 8 8 1 open/syncd /
hd2 jfs2 40 40 1 open/syncd /usr
hd9var jfs2 32 32 1 open/syncd /var
hd3 jfs2 16 16 1 open/syncd /tmp
hd1 jfs2 80 80 1 open/syncd /home
hd10opt jfs2 80 80 1 open/syncd /opt
lg_dumplv sysdump 8 8 1 open/syncd N/A
解决方法:
如果不是1对2的关系(比如上面的列子),而主机的本地磁盘有2块以上,则需要做rootvg的 mirror镜像:
|||||||||||||||||||||||||||||
将两块系统磁盘做镜像:
#smitty extendvg 扩展rootvg,将hdisk1加入到rootvg中
/usr/sbin/extendvg 'rootvg' 'hdisk1'
按图中所示选择,将hdisk1加入到rootvg中,按回车
#smitty mirrorvg 对所选择的VG做镜像。
如上图,将要做镜像的两块硬盘选中,按回车,开始镜像。
上图所示,镜像成功完成。
#bosboot ad hdisk1 将启动扇区写入hdisk1
#bootlist m normal rmt0 cd0 hdisk0 hdisk1 改变启动顺序,将hdisk1加入启动序列。 到此镜像完成,两块硬盘将同时工作,互为镜像。
||||||||||||||||||||||||||||||||||||||||||||| 4、查看bootlist是否正常,推荐从硬盘开始引导:
方式:"# bootlist -m normal o" 查看是不是包含了镜像的两块本地硬盘
结果应该类似下面
# bootlist -m normal -o
hdisk0 blv=hd5
hdisk1 blv=hd5
否则需要修改bootlist:
修改方式:
如果和预期不符合,可以通过下面的方式来修改:
Diag->task selection->display or change Bootlist
5、查看AIX参数
原理
调整AIX上的文件缓存
在AIX上,可以通过vmtune命令中的MINPERM和MAXPERM参数,调整系统文件缓存来控制内存交换操作,MINPERM和MAXPERM参数的调整应遵照以下的原则:
当内存中的文件缓存页在MINPERM以下时,内存页交换算法同时交换文件缓存页和程序页(computational pages)。
当内存中的文件缓存页在MAXPERM以上时,内存页交换算法只交换文件缓存页。
当内存中的文件缓存页在MINPERM和MAXPERM之间时,内存页交换算法通常只交换文件缓存页,但如果文件缓存页的交换率大于程序页时,程序页也同样被交换。
MINPERM和MAXPERM参数的缺省值:
MINPERM = ((number of memory page) - 1024)*0.2
MAXPERM = ((number of memory page) - 1024)*0.8
可以用以下命令将MINPERM设为5%的内存页,而MAXPERM设为20%的内存页。
# vmtune -p 5 -P 20 缺省值分别为20%和80%。
在Oracle数据库应用的环境下,可以将MINPERM和MAXPERM分别设为5%和20%甚至更小,从而使内存更多地被用于Oracle的SGA而不是系统的文件缓存。
(查看文件系统内存占用的份额规定,如果oracle 采用裸设备方式存储文件,则文件系统内存分配比率建议为内存的5%-10%)
方式:"nmon"
结果类似下面:
nmon 查看内存的属性
着重关注,Min/Maxperm部分,这一块代表文件系统内存能够占用的部分,建议内存为5(min)-10(max)留给文件系统。
如果不符合:
通过下面的命令来修改文件系统内存使用的阈值:
|||||||||||||||||
修改内存参数:
minperm%=2 初始化把内存的2%给文件内存用 1.4G 归档,ftp 会使用
#vmo -r -o minperm%=5
#vmo -r -o maxclient%=10
#vmo -r -o maxperm%=10
重启后参数才能起作用
|||||||||||||||||||||
6、查看pagespace是否符合要求,"lsattr -El mem0" "lsps -a"
方式:(lsdev Cc memory ,lssattr El mem0,lsps -a)
结果类似下面,可以看到内存的大小为16G,而pagesize为8G
#
# lsdev -Cc memory
L2cache0 Available L2 Cache
mem0 Available Memory
# lsattr -El mem0 (物理内存大小)
goodsize 16384 Amount of usable physical memory in Mbytes False
size 16384 Total amount of physical memory in Mbytes False
如果内存内存的两倍
# lsps a (pagesize大小)
Page Space Physical Volume Volume Group Size %Used Active Auto Type
hd6 hdisk0 rootvg 8192MB 1 yes yes lv
解决方法:
如果和预期不一样,尝试修改pagesize大小:
||||||||||||||||||||||
修改以上几个参数。
修改Paging Space空间
#smitty lvm
选择 Paging Space
选择 Change / Show Characteristics of a Paging Space
选择 hd6
在NUMBER of additional logical partitions输入:60
将Paging Space空间扩展为8GB
检查页面空间大小
# lsps -a
Page Space Physical Volume Volume Group Size %Used Active Auto Type
hd6 hdisk0 rootvg 8192MB 1 yes yes lv
同样方式修改另一台主机的系统参数。
||||||||||||||||||||||||||| 查看CPU 参数,相关信息是否匹配 "prtconf"
方式:"prtconf"
类似结果如下:
# prtconf
System Model: IBM,8204-E8A
Machine Serial Number: *****
Processor Type: PowerPC_POWER6 (power 芯片类型,为power6)
Processor Implementation Mode: POWER 6
Processor Version: PV_6_Compat
Number Of Processors: 4 (CPU core 个数 4个,即2个双核的物理CPU)
Processor Clock Speed: 3503 MHz (CPU 主频 3.5G)
CPU Type: 64-bit
Kernel Type: 64-bit (内核版本 64位)
LPAR Info: 1 zzrac1
Memory Size: 16384 MB(内存大小16G)
Good Memory Size: 16384 MB
Platform Firmware level: EL350_049
Firmware Version: IBM,EL350_049
Console Login: enable
Auto Restart: true
Full Core: false
Network Information
Host Name: zzrac1
IP Address: 10.220.97.51
Sub Netmask: 255.255.255.0
Gateway: 10.220.97.254
Name Server:
Domain Name:
Paging Space Information
Total Paging Space: 8192MB
Percent Used: 1%
Volume Groups Information
================================================== ============================
rootvg:
PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
hdisk0 active 546 248 79..00..00..60..109
================================================== ============================
0516-010 : Volume group must be varied on; use varyonvg command.
================================================== ============================
0516-010 : Volume group must be varied on; use varyonvg command.
================================================== ============================
arch1vg:
PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
hdisk5 active 812 1 00..00..00..00..01
================================================== ============================
INSTALLED RESOURCE LIST
The following resources are installed on the machine.
+/- = Added or deleted from Resource List.
* = Diagnostic support not available.
解决方法:
如何和产品不符,咨询厂家实际情况并修复问题(更换内存?CPU?)
查看是否属于夏时制(不要是夏时制)[确认tz那行对应的不是TZ=1而是TZ=BEIST-8]
方法:"more /etc/environment"
类似结果:
# more /etc/environment
# @(#)18
1.25 src/bos/etc/environment/environment, cmdsh, bos53A, a2004_
35B6 8/23/04 04:13:11
# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# bos53A src/bos/etc/environment/environment 1.25
#
# Licensed Materials - Property of IBM
#
# (C) COPYRIGHT International Business Machines Corp. 1989,1994
# All Rights Reserved
#
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
# IBM_PROLOG_END_TAG
#
# COMPONENT_NAME: (CMDSH) Shell related commands
#
# ORIGINS: 27
#
# (C) COPYRIGHT International Business Machines Corp. 1989, 1994
# All Rights Reserved
# Licensed Materials - Property of IBM
#
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
################################################## ##############
# System wide environment file. This file should only contain
# 1. comment lines which have a # in the first column,
# 2. blank lines, and
# 3. Lines in the form name=value.
#
# WARNING: This file is only for establishing environment variables.
# Execution of commands from this file or any lines other
# than specified above may cause failure of the initialization
# process.
#
# Searching the current directory last is usually a BIG time saver.
# If /usr/ucb is at the beginning of the PATH the BSD version of commands will
# be found.
#
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11 :/sbin:/usr/java14/jre/bin:/us
r/java14/bin
TZ=1
LANG=en_US
LOCPATH=/usr/lib/nls/loc
NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L /%N.cat
LC__FASTMSG=true
# ODM routines use ODMDIR to determine which objects to operate on
# the default is /etc/objrepos - this is where the device objects
# reside, which are required for hardware configuration
ODMDIR=/etc/objrepos
TERM=vt100
# 解决方法:
||||||||||||||||||
若时区不是"BEIST-8",则通过smitty chtz 改时区(改完时区之后需要重启才能生效)
Smitty chtz->Use DAYLIGHT SAVINGS TIME?(选择no)-> CUT (Coordinated Universal Time) Time Zone (选择"(BEIST-8) Peoples Rep. China (CUT +8)")
|||||||||||||||||||
检查rac两节点是否时间同步,用"date "命令查看(首先确认时区要一致)
结论,若不同步,通过smitty date改时间
数据库版本检查,是否为最新: 检查数据库版本和crs的版本是否打到最新(10.2.0.5):
方法:
"sqlplus -version", 查看software版本
"crsctl query crs softwareversion" 查看crs版本
类似结果
$ sqlplus -version
SQL*Plus: Release 10.2.0.5.0 Production
# crsctl query crs softwareversion
CRS software version on node [zzrac1] is [10.2.0.5.0]
解决方案:
||||||||||||||
如果补丁集较低,建议升级补丁:
1>、应用备份数据
2>、升级rac crs
3>、升级oracle software
4>、升级库版本
5>、编译无效的对象
||||||||||||||||
(数据文件如果采用裸设备的方式)检查是否数据库文件关闭了自动扩展(建议关闭自动扩展)(用toad上去观察)
方案:使用toad检查问价系统状态
类似结果:
解决方案:
关闭相应的数据文件的自动扩展:
ALTER DATABASE TEMPFILE '/dev/rrac_temp_2G' AUTOEXTEND OFF;
检查数据库文件是否已经和lv大小相近似(建议扩充文件系统,接近到可扩充的最大文件)
方法:使用toad检查
类似结果
解决方案:(rac_temp_2G对应了8个pp)
# lsvg -l oraclevg
oraclevg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
rac_ocr_raw_1G raw 4 4 1 open/syncd N/A
rac_vote_raw_1G raw 4 4 1 open/syncd N/A
rac_system_2G raw 8 8 1 open/syncd N/A
rac_sysaux_2G raw 8 8 1 open/syncd N/A
rac_undotbs1_2G raw 8 8 1 open/syncd N/A
rac_undotbs2_2G raw 8 8 1 open/syncd N/A
rac_temp_2G raw 8 8 1 open/syncd N/A
rac_users_2G raw 8 8 1 open/syncd N/A
rac_redo11_4G raw 16 16 1 open/syncd N/A
rac_redo12_4G raw 16 16 1 open/syncd N/A
rac_redo31_4G raw 16 16 1 open/syncd N/A
rac_redo32_4G raw 16 16 1 open/syncd N/A
rac_redo21_4G raw 16 16 1 open/syncd N/A
rac_redo22_4G raw 16 16 1 open/syncd N/A
rac_redo41_4G raw 16 16 1 open/syncd N/A
rac_redo42_4G raw 16 16 1 open/syncd N/A
rac_con1_512m raw 2 2 1 open/syncd N/A
rac_con2_512m raw 2 2 1 open/syncd N/A
rac_con3_512m raw 2 2 1 open/syncd N/A
rac_spfile_512m raw 2 2 1 closed/syncd N/A
查看pp大小(1个pp大小为256M)
# lsvg oraclevg
VOLUME GROUP: oraclevg VG IDENTIFIER: 00c976b500004c00000001296240e915
VG STATE: active PP SIZE: 256 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 6143 (1572608 megabytes)
MAX LVs: 256 FREE PPs: 5951 (1523456 megabytes)
LVs: 20 USED PPs: 192 (49152 megabytes)
OPEN LVs: 19 QUORUM: 2 (Enabled)
TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: no
Concurrent: Enhanced-Capable Auto-Concurrent: Disabled
VG Mode: Concurrent
Node ID: 1 Active Nodes:
MAX PPs per VG: 28448
MAX PPs per PV: 7112 MAX PVs: 4
LTG size (Dynamic): 1024 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable
#
所以rac_temp_2G 可以扩展到2G(8*256M)
如果没有扩展到适应大小,用下面命令:(确认lv大小)
ALTERDATABASETEMPFILE'/dev/rrac_temp_2G'RESIZE2000M;
|||||||||||||||||||
查看rac两个节点是否做了时间同步:
方式:
1>"lssrc -ls xntpd"
2>查看同步的时间间隔(poll)
# xntpdc -c peers
具体命令
主节点情况:
# lssrc -ls xntpd
Program name: /usr/sbin/xntpd
Version: 3
Leap indicator: 00 (No leap second today.)
Sys peer: 127.127.1.0
Sys stratum: 4
Sys precision: -18
Debug/Tracing: DISABLED
Root distance: 0.000000
Root dispersion: 0.010010
Reference ID: 127.127.1.0
Reference time: cfd147ba.95c06000 Sun, Jun 27 2010 11:44:58.584
Broadcast delay: 0.003906 (sec)
Auth delay: 0.000122 (sec)
System flags: pll monitor filegen
System uptime: 2980 (sec)
Clock stability: 0.000000 (sec)
Clock frequency: 0.000000 (sec)
Peer: 127.127.1.0
flags: (configured)(refclock)(sys peer)
stratum: 3, version: 3
our mode: client, his mode: server
Subsystem Group PID Status
xntpd tcpip 127370 active
次节点的情况
:
# lssrc -ls xntpd
Program name: /usr/sbin/xntpd
Version: 3
Leap indicator: 00 (No leap second today.)
Sys peer: zzrac1
Sys stratum: 5
Sys precision: -18
Debug/Tracing: DISABLED
Root distance: 0.000305
Root dispersion: 0.010757
Reference ID: 10.220.97.51
Reference time: cfd147b0.aeda5000 Sun, Jun 27 2010 11:44:48.683
Broadcast delay: 0.003906 (sec)
Auth delay: 0.000122 (sec)
System flags: pll monitor filegen
System uptime: 2529 (sec)
Clock stability: 0.000000 (sec)
Clock frequency: 0.000000 (sec)
Peer: zzrac1
flags: (configured)(sys peer)
stratum: 4, version: 3
our mode: client, his mode: server
Subsystem Group PID Status
xntpd tcpip 180636 active
解决方案:
如果问题无法解决,配置时间服务器的过程如下:
|||||||| AIX配置时间服务器及客户机实战笔记收藏
xntpd是关于网络时间协议的守护进程,它遵循了因特网时间服务器的通用标准。在启动 xntpd 时, xntpd 会读取 /etc/ntp.conf 配置文件来确定网络中系统时钟服务器,以 ntp 服务器的系统时间为标准,来调整本机的系统时间。
可以用 ntpq 命令来显示 xntpd 进程的内部变量。使用 ntp 时应注意,xntpd 服务器和 xntpd 客户端的时钟不能相差超过1000秒。若有大于1000秒的偏移,在客户端启动 xntpd 守护进程前,用 data 命令或 ntpdate 命令调整本机的系统时间,使偏移量在1000秒之内。然后启动 xntpd.
1. 构造一个NTP环境的基本步骤:
1.1 设置NTP 服务器(以192.168.5.2为例), 其它NTP客户服务器以此服务器的时间为准,与其进行时间同步.
1.1.1编辑 /etc/ntp.conf 文件, 内容如下:
----------------------------
#broadcastclient
server 127.127.1.0
driftfile /etc/ntp.drift
tracefile /etc/ntp.trace
----------------------------
请注意文件中的 server 127.127.1.0 这一行, 此处的127.127.1.0 是一特殊的地址,表示NTP主服务器是与自身的系统时钟同步.
1.1.2编辑好 /etc/ntp.conf后, 启动xntpd守护进程
# startsrc -s xntpd
也可通过调用smitty , 使 xntpd 在以后重启服务器时能自动启动.
# smitty xntpd
1.1.3 xntpd 状态查询 , 使用 #lssrc -ls xntpd
刚启动xntpd时, sys peer 为 'insane', 表明xntpd还没有完成同步, .
#lssrc -ls xntpd
Program name: --/usr/sbin/xntpd
Version: -------3
Leap indicator: 11 (Leap indicator is insane.) Sys peer: ------no peer, system is insane ...
等待 6 - 10 分钟后, sys peer 就不再是 'insane' 了.
#lssrc -ls xntpd
Program name: --/usr/sbin/xntpd
Version: -------3
Leap indicator: 00 (No leap second today.) Sys peer: ------127.127.1.0 ...
1.2. NTP客户端的设置
1.2.1编辑 NTP 客户端上的 /etc/ntp.conf文件, 内容如下:
----------------------------
#broadcastclient
server 192.168.5.2
driftfile /etc/ntp.、drift
tracefile /etc/ntp.trace
----------------------------
其中的 server 192.168.5.2 表明, 此客户端与IP地址为 192.168.5.2 的NTP服务器进行时间同步.
1.2.2在NTP客户端启动xntpd守护进程
# startsrc -s xntpd
也可通过调用smitty , 使 xntpd 在以后重启服务器时能自动启动.
# smitty xntpd
1.2.3查询xntpd的状态
当 system peer 不为 'insane' 时, 表明客户端已与服务器端成功地进行了同步.
# lssrc -ls xntpd
Program name: --/usr/sbin/xntpd
Version: -------3
Leap indicator: 00 (No leap second today.) Sys peer: ------192.168.5.2 ...
1.3. NTP客户端查询NTP服务器
ntp客户端使用 ntpdate 命令来确认是否可用指定的 ntp 服务器进行时间同步。
命令的结果会显示客户端与服务器的时间偏移。
#ntpdate -d 192.168.5.2 ... 18 Jan 15:49:57 ntpdate[98462]: adjust time server 192.168.5.2 offset -0.000868 2 sec 若时间间隔大于1000秒,使用ntpdate 进行手工调整, 如:
#date
Thu Jan 18 15:52:00 BEIST 2007
#ntpdate 192.168.5.2
18 Jan 15:49:57 ntpdate[23832]: step time server 9.185.43.189 offset 23.40260
7 sec
#date
Thu Jan 18 15:52:00 BEIST 2007
完成上述操作后 ntp 客户端与 ntp 服务器系统时钟完成同步,ntp 客户端得到了新的系统时间。
查看同步的时间间隔(poll)
# xntpdc -c peers
remote local st poll reach delay offset disp
================================================== =====================
*192.168.5.2 192.168.7.1 4 64 377 0.00230 -0.000426 0.00026
|||||||||||||||| 文件系统的RAC则要查询AIO设置:
原理:
异步IO的设置
操作系统中最常用的I/O模式是同步I/O。在同步中,当发出一个I/O请求之后,应用程序就会阻塞,知道I/O请求得到满足为止。
异步I/O(AIO)的基本思想是允许众多并发进程同时发起I/O操作,而不用阻塞或等待任何操作完成。在稍后接收到I/O
操作完成的通知时,进程就可以检索I/O操作的记结果。
显然,使用异步IO有助于构建在多用户运算模式下速度更快的I/O方式。在异步I/O的支持下,应用系统(如Oracle数据库),可以避免I/O的重叠操作,高效使用CPU资源。
Oracle数据库在AIX上运行时,完全支持AIO模型。如果能够正确和优化地使用AIO,则会对Oracle系统进行I/O写入操作带来非常正面的影响。它使Oracle在后台完成I/O操作的同时,继续进行计算和处理,大幅度提高性能。
在AIX 5L中,无论Oracle 数据文件采用的是JFS2文件系统方式存放,或者是采用裸设备方式存放,异步I/O都是支持的。如果Oracle采用裸设备形式存储数据库文件(数据文件、日志文件、控制文件),由于AIX对于AIO的支持已经完全集成在内核中,所以Oracle数据库的I/O操作本身即异步处理,无需做任何调整。
如果采用JFS2/JFS文件系统,则Oracle数据局库的I/O操作的异步化,必须由aioserver完成---由aioserver控制读写任务从启动到结束的全过程。因此,aioserver的进程数量也就决定了Oracle可同时读写的任务多少。
所以,在文件系统数据库模式下,调整AIO的参数是非常必要的。调整该参数可以在SMITTY环境下执行。设定后需要重新启动系统。当然也可以通过下面的命令修改AIO逻辑设备的属性来达到同样的目的:
方法:
Smitty chaio
修改方式:
#chdev -l aio0 -a maxservers='100' -a minservers='50'
原理: hard limits自AIX 4.1版本开始引入。hard limits 应由AIX系统治理员设置,只有security组的成员可以将此值增大,用户本身可以减小此限定值,但是其更改将随着该用户从系统退出而失效。使用下列命令可以查看hard limits的限定值:
ulimit -Ha
soft limits 是AIX核心使用的限制进程对系统资源的使用的上限值。此值可由任何人更改,但不能超出hard limits值。这里要注重的是只有security组的成员可使更改永久生效,普通用户的更改在其退出系统后将失效。使用以下命令可以查看soft limits的设置:
ulimit -a
下面为系统的soft limits的默认值:
3.2 4.1-4.3
=============== =================
fsize = 2097151 fsize = 2097151
core = 2048 core = 2048
cpu = 3600 cpu = -1
data = 131072 data = 262144
rss = 65536 rss = 65536
stack = 8192 stack = 65536
nofiles = 2000* nofiles=2000 *
* 该值(nofiles)只能在AIX 4.3.1 或以后的版本中更改。
上述定义作为默认值存放在文件 /etc/security/limits 中,在新用户被加进系统后生效。直接更改此文件中的定义值需要将系统重新启动以便使更改生效。将相应值该为"-1" 表示不受 soft limits的限制(unlimited)。
下面我们将就各字段逐一进行介绍:
fsize 用户创建的文件大小限制。此定义值(512字节为单位)为该用户可以生成的最大文件的大小。
core 生成的core文件大小的限制(512字节为单位)。
cpu 用户进程可用cpu的限定值(以秒为单位)。普通用户只能将此值减小,root可以将此值增大。这里要注重的是进程使用CPU的时间取决于AIX Kernel(核心程序)进程调度算法,该值在此仅做参考。
data 进程数据段大小的限定值(以字节为单位)。
stack 进程堆栈段大小的限定值(以字节为单位)。
rss 进程常驻内存段的限定值(以字节为单位)。AIX核心并不参考此限定。
nofiles 进程中打开文件的最大数量。此限定在AIX 4.3.1之前的版本中固定为2000。在AIX 4.3.1及其之后的版本中可将此值增大至32767。
方式:(ulimit a)
cat /etc/security/limits
理想结果:
cat /etc/security/limits
# more /etc/security/limits
* Sizes are in multiples of 512 byte blocks, CPU time is in seconds
* fsize - soft file size in blocks
* core - soft core file size in blocks
* cpu - soft per process CPU time limit in seconds
* data - soft data segment size in blocks
* stack - soft stack segment size in blocks
* rss - soft real memory usage in blocks
* nofiles - soft file descriptor limit
* fsize_hard - hard file size in blocks
* core_hard - hard core file size in blocks
* cpu_hard - hard per process CPU time limit in seconds
* data_hard - hard data segment size in blocks
* stack_hard - hard stack segment size in blocks
* rss_hard - hard real memory usage in blocks
* nofiles_hard - hard file descriptor limit
* The following table contains the default hard values if the
* hard values are not explicitly defined:
*
* Attribute Value
* ========== ============
* fsize_hard set to fsize
* cpu_hard set to cpu
* core_hard -1
* data_hard -1
* stack_hard 8388608
* rss_hard -1
* nofiles_hard -1
*
* NOTE: A value of -1 implies "unlimited"
*
default: fsize = -1 core = -1 cpu = -1 data = -1 rss = -1 stack = -1 nofiles = -1 root: daemon: bin: sys: adm: uucp: guest: nobody: lpd: esaadmin: stack = 393216 stack_hard = 393216 oracle: nofiles = -1 data = -1 rss = -1 stack = -1 fsize = -1 注意,-1是无限制
解决办法:
要修改如上限制,可以采用命令如
chuser data='-1' rss='-1' stack='-1' fsize='-1' nofiles='-1' oracle 原理: 如何对操作系统进行调优,使操作系统支持最大连接数?
在solaris下,在安装oracle前必须要调整系统参数,该参数文件位于/etc/下,名为system,里面有一个参数 semsys:seminfo_semmns=1024,这个值是processor的最终控制值,这个参数表示unix系统总共可以分配的进程。当oracle的进程数超过操作系统的限制时,就会出现这样的错误。maximum number of processes(150) exceeded,现在,你可以检查根据你自己的操作系统检查一下看怎样找到该参数。
AIX操作系统下,smit chgsys 查看Maximum number of PROCESSES allowed per user
系统缺省128。如果连接数超过,也会有访问不了oracle的问题.
方式:
Smitty chgsys
结果类似下面:
Change / Show Characteristics of Operating System
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[TOP] [Entry Fields]
System ID 0X80000EBC36D00000
Partition ID 0X80000EBC36D00002
Maximum number of PROCESSES allowed per user [10000] +#
Maximum number of pages in block I/O BUFFER CACHE [20] +#
Maximum Kbytes of real memory allowed for MBUFS [0] +#
Automatically REBOOT OS after a crash true +
Continuously maintain DISK I/O history false +
HIGH water mark for pending write I/Os per file [33] +#
LOW water mark for pending write I/Os per file [24] +#
Amount of usable physical memory in Kbytes 16252928
State of system keylock at boot time normal
Enable full CORE dump false +
Use pre-430 style CORE dump false
解决方案
如果太小,可以修改
Smitty chgsys-> Maximum number of PROCESSES allowed per user 设置>1500