说明:
RAC更换存储后存储断链路后
进行mulitiph -ll查询存储链路信息
出现io_setup_failed情况
结合当时ASM进行rebalance时出现
ORA-27090: UNABLE TO RESERVE KERNEL RESOURCES FOR ASYNCHRONOUS DISK I/O
出现问题原因为fs.aio-max-nr值设置过小。
redhat官网给出建议为将该值调大
oracle官网给出的标准化安装参数最小值为1048576
核心生产不敢轻易调整.
最终根据mos查询出一篇doc:
You discover messages of this nature in your alert log:
ORA-27090: Message 27090 not found; product=RDBMS; facility=ORA
Additional information: 3
Additional information: 128
Additional information: 65536
- OR -
ORA-27090: UNABLE TO RESERVE KERNEL RESOURCES FOR ASYNCHRONOUS DISK I/O
Additional information: 3
Additional information: 128
Additional information: 65536
- OR -
ORA-27090: Message 27090 not found; product=RDBMS; facility=ORA
Linux-x86_64 Error: 4: Interrupted system call
Additional information: 3
Additional information: 128
Additional information: 65536
Strace against DBWR shows:
io_setup(4096, 0x66e1588) = -1 EAGAIN (Resource temporarily unavailable),
which is related to "aio-max-nr" kernel limit.
CAUSE
The "aio-max-nr" kernel limit is too low.
SOLUTION
The "aio-max-nr" kernel limit should be adjusted according to Oracle recommendations which are available in this document:
Also, this parameter should be set as follows:
-------------------------------------
fs.aio-max-nr= 3145728
-------------------------------------
ORA-27090 - Unable to Reserve Kernel Resources for Asynchronous Disk I/O (Doc ID 579108.1)