• ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O


    RDBMS :11.2.0.4

    参考文档

    ORA-27090 - Unable to Reserve Kernel Resources for Asynchronous Disk I/O (Doc ID 579108.1)
    What value should kernel parameter AIO-MAX-NR be set to ? (Doc ID 2229798.1)
    Receiving ASM traces for errors: ORA-27090, LINUX-X86_64 ERROR: 17: FILE EXISTS (Doc ID 1551921.1)

    在检查数据库的日志时,发现asm的log中有以下告警

    1. Sat Nov 26 09:01:08 2022
    2. Errors in file /u01/app/gridbase/diag/asm/+asm/+ASM1/trace/+ASM1_ora_64390.trc:
    3. ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
    4. Linux-x86_64 Error: 2: No such file or directory
    5. Additional information: 3
    6. Additional information: 128
    7. Additional information: 436930534
    8. Errors in file /u01/app/gridbase/diag/asm/+asm/+ASM1/trace/+ASM1_ora_64390.trc:
    9. ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
    10. Linux-x86_64 Error: 11: Resource temporarily unavailable
    11. Additional information: 3
    12. Additional information: 128
    13. Sat Nov 26 09:01:08 2022

    从trc文件中看不出来什么。另外在数据库的alert log中无告警。

    以上三个MOS文档,都与参数fs.aio-max-nr有关,Oracle建议设置为fs.aio-max-nr= 3145728 ,而不是官方DOC中说的1048576.(MOS文档中,说官方的DOC里面,是个错误)

    MOS中的说明:

    NOTE:
    Per bug Bug 13554729 - CORRECT FS.AIO-MAX-NR = 3145728
    the published limit in the Oracle Documentation at Oracle® Database Quick Installation Guide is incorrect.
    The Oracle documentation lists the minimum value as the max value.

    另一个MOS文档中的说明:

    We recommend setting aio-max-nr to 3145728 in case that ORA-27090 occurred.

    SOLUTION

    The below document links provide the minimum values required for a good install and basic usage.

    How to Complete Preinstallation Tasks Manually

    Oracle® Database Quick Installation Guide

    All these parameters are tunable, as per disclaimer:

    The kernel parameter and shell limit values shown in the following section are minimum values only. For production database systems, Oracle recommends that you tune these values to optimize the performance of the system. See the operating system documentation for more information about tuning kernel parameters.

    The minimum value suggested as per Oracle® Database Quick Installation Guide for aio-max-nr is 1048576 .

    We recommend setting aio-max-nr to 3145728 in case that ORA-27090 occurred.

    And the maximum of aio-max-nr parameter can be calculated by -

    aio-max-nr =no of process per DB * no of databases * 4096

    After deriving the value using this formula , you should still monitor the /proc/sys/fs/aio-nr value and also monitor I/O loading.

    Points to know -

    1) Number  of processes per database  is not background server process number, it's the number of background server process + user process.
    2) Parameter aio-max-nr is a limitation of aio-nr, no impact was reported if you set it too high. But we should still monitor /proc/sys/fs/aio-nr value and tune this value.

    设置后,从下面的内容,可以看到,原来设置的值太小。

    1. [root@testdb01 ~]# cat /proc/sys/fs/aio-nr
    2. 1050112 <<<<< 这里,已经超过了原来的1048576
    3. [root@hypdb01 ~]# cat /proc/sys/fs/aio-max-nr
    4. 3145728
    5. [root@testdb01 ~]#

    END。

    另外,补充一个exadata中的参数设置,oracle已经将该参数默认设置了3145728

    1. ########### END DO NOT REMOVE Added by Oracle Exadata ###########
    2. ########### BEGIN DO NOT REMOVE Added by Oracle Exadata ###########
    3. ########### END DO NOT REMOVE Added by Oracle Exadata ###########
    4. ########### BEGIN DO NOT REMOVE Added by Oracle Exadata ###########
    5. # 26540521 vm.min_free_kbytes to 1024MB
    6. # 18647941 ARP_ANNOUNCE=2 NEEDS TO ENSURE CORRECT ARP UPDATE
    7. net.ipv4.conf.ib0.arp_announce = 2
    8. net.ipv4.conf.ib1.arp_announce = 2
    9. ########### END DO NOT REMOVE Added by Oracle Exadata ###########
    10. ########### BEGIN DO NOT REMOVE Added by Oracle Exadata ###########
    11. ########### END DO NOT REMOVE Added by Oracle Exadata ###########
    12. ########### BEGIN DO NOT REMOVE Added by Oracle Exadata ###########
    13. ########### END DO NOT REMOVE Added by Oracle Exadata ###########
    14. ########### BEGIN DO NOT REMOVE Added by Oracle Exadata ###########
    15. fs.file-max = 13631488
    16. fs.aio-max-nr = 3145728
    17. kernel.pid_max = 400000
    18. kernel.unknown_nmi_panic = 1
    19. kernel.nmi_watchdog = 0
    20. kernel.watchdog_thresh = 30
    21. kernel.printk = 4 4 1 7
    22. kernel.randomize_va_space = 2
    23. # 30681435
    24. vm.min_free_kbytes = 2097152
    25. net.core.rmem_default = 4194304
    26. net.core.wmem_default = 262144
    27. net.core.rmem_max = 4194304
    28. net.core.wmem_max = 2097152
    29. ########### END DO NOT REMOVE Added by Oracle Exadata ###########
    30. ########### BEGIN DO NOT REMOVE Added by Oracle Exadata ###########
    31. ########### END DO NOT REMOVE Added by Oracle Exadata ###########
    32. ########### BEGIN DO NOT REMOVE Added by Oracle Exadata ###########

     END 

  • 相关阅读:
    基于JAVA线上动漫周边商城计算机毕业设计源码+数据库+lw文档+系统+部署
    神经网络怎么看训练效果,神经网络结果图如何看
    UE5 C++自定义Http节点获得Header数据
    〖Python 数据库开发实战 - MySQL篇㉔〗- 数据插入操作 - NSERT语句
    校物联网智慧安全用电平台的设计和运用-安科瑞黄安南
    scratch学习相关资料汇总
    快速安装 kafka 集群
    VUE综合数据库编程
    VS code 下 makefile 【缺少分隔符 停下来】 报错解决方法
    vue中动态引入图片
  • 原文地址:https://blog.csdn.net/xxzhaobb/article/details/128129064