|
Author:NinGoo posted on NinGoo.net ]% 18/kf
AIX的异步IO需要bos.rte.aio文件集的支持 |:, YC:Yi
#lslpp -l bos.rte.aio U]BLDseS
Fileset Level State Description <"[t\bG
---------------------------------------------------------------------------- N"saLe.w
Path: /usr/lib/objrepos 3eNRPpX-^
bos.rte.aio 5.3.0.62 COMMITTED Asynchronous I/O Extension @$-{^[
0t
如何启用AIO 21Af=F
- IE SqUH
#mkdev -l aio0 0)*u/:f
aio0 Available K$J7j$Bk
#chdev -P -l aio0 -a autoconfig='available' E4G,qk
aio0 changed _ecMy^T
查看aio的配置信息 54,lbEIA
#lsattr -El aio0 {K_2I'@
autoconfig available STATE to be configured at system restart True v$u!!$!}
fastpath enable State of fast path True dKQ
]]z
kprocprio 39 Server PRIORITY True
<^V/z>*
maxreqs 4096 Maximum number of REQUESTS True ~A&}1qe]t
maxservers 10 MAXIMUM number of servers per cpu True Jd:6KQ
minservers 1 MINIMUM number of servers True 3h,)zJC+=
其中,maxreqs表示同一时刻所允许的异步 I/O 请求,包括已经在处理的异步 I/O 请求和等待处理的异步 I/O 请求。maxservers和minservers参数指定了用于处理异步IO的进程数。默认的maxservers=10对于大多数系统来说,应该已经足够了, 这两个参数都是针对文件系统等的aio的,而raw设备的异步IO直接由内核进程完成,不依赖aioserver。autoconfig必须设置为available才会在下次启动时自动激活AIO。 s
e'GF
通过如下命令可以查询系统当前aioserver的个数,如果已经达到或者接近maxservers,则需要考虑增加该参数。 B<u1~(m.
#pstat -a | grep aios | wc -l O>nQa w
从AIX5.2开始,支持两种模式的AIO,一种是传统模式的,一种是posix的 #(Zx8
#pstat -a | grep aio m}i
Y(xj
40 a 28088 1 28088 0 0 1 posix_aioserver 1i 6%J%
67 a 43002 1 43002 0 0 1 aioserver z&6KVOL[
Oracle在AIX平台上安装的时候要求必须开启AIO,在rootpre.sh脚本中包含了启动AIO的代码 =FxN|A:B
# Asynchronous I/O 8Ql ?_\
echo "Configuring Asynchronous I/O..." | tee -a $LOG 69C%01P
aio=`lsdev -C -t aio|awk '{print $2}'` _9,q6-7
case $aio in D`R=x~S
*Available*) echo "Asynchronous I/O is already defined" | tee -a $LOG `Q5~}ca[
;; |e9PWg
*Defined*) mkdev -l aio0 | tee -a $LOG x)aSdHGg"
chdev -P -l aio0 -a autoconfig='available' vhVk'5$
;; tpxC\]>T~
*) echo "Asynchronous I/O is not installed on this system." >> $LOG XHo*yR
cat << END jnL%N'|V C
Asynchronous I/O is not installed on this system. /yv#pLJW9
You will need to install it, and either configure it yourself using F"-& w_\
'smit aio' or rerun the Oracle root installation procedure. 0!])tE}!
END Ei*wQn'>
;; =Kf {xl
esac ODvd7.A,
如何删除AIO /ri.k'j
AIO是由内核提供支持的,首先将autoconfig改为defined然后重启系统 sS[sGK ty
#chdev -P -l aio0 -a autoconfig='defined' O&mBC\T^
如果使用rmdev -dl aio0彻底删除了aio0的定义,则再次使用mkdev -l aio0的时候可能遭遇以下错误: h[*1u)
mkdev: 0514-519 The following device was not found in the customized ,S]{qQD*
device configuration database: Fv)^wT]w~
name = 'aio0' S+#)4|
'NF
这时需要先定义设备,才能添加设备,定义aio0设备可以通过smit aio选择Configure Defined Asynchronous I/O。 jv"[x{9i
另外要提到的一点,就是Oracle的存储测试工具Orion,也是必须打开AIO的,否则会报如下错误: $-]:c}*v
exec(): 0509-036 Cannot load program ./orion because of the following errors: dQpW$9IY
0509-130 Symbol resolution failed for /usr/lib/libc.a[aio_64.o] because: d,$|;:zS
0509-136 Symbol kaio_rdwr64 (number 0) is not exported from Z%K?:(
dependent module /unix. fsb.r0
L'
0509-136 Symbol listio64 (number 1) is not exported from e$LH,Ak-]
dependent module /unix. nc
6K%+G
0509-136 Symbol acancel64 (number 2) is not exported from L9W=r<i`
dependent module /unix. % Vx2 !T)
0509-136 Symbol iosuspend64 (number 3) is not exported from Mm;9 oQ[
dependent module /unix. "
^i6Hd:
0509-136 Symbol aio_nwait (number 4) is not exported from Oh?W6:(MZ
dependent module /unix. uLAm<RShA
0509-136 Symbol aio_nwait64 (number 5) is not exported from m7H`#O#
dependent module /unix. ;42EcV5w_
0509-136 Symbol aio_nwait_timeout (number 6) is not exported from Y>xC!r9(
dependent module /unix. |)y$P/@Wg
0509-136 Symbol aio_nwait_timeout64 (number 7) is not exported from ZnwqVG=G
dependent module /unix. aZ<! 2<
0509-026 System error: Error 0 x@AD1+qk
0509-192 Examine .loader section symbols with the mtO4>_C.]
'dump -Tv' command. 3EJ)d0
A5
TAr}gThI
|
一共有 0 条评论
发表评论