aio-max-nr达到上限导致数据库性能问题

问题说明:

rac数据库节点一表面上看由于归档等待事件导致业务性能问题。

问题分析过程:

查看awr报告top事件,等待事件主要为归档切换问题:

查看事件,归档等待达到20多分钟

检查节点alert日志发现,最早12点53分49秒就有归档失败报错,如下:

到13:19:39的时候,发生了所有online logs需要归档,导致数据库等待归档事件,如下:

查看最早发生归档异常时间段的trace日志,如下图:

在告警中,报asynch I/O内核限制,主要是由于异步IO请求达到AIO-MAX-NR的上限。

查看当前内核参数配置,cat /etc/sysctl.conf,如下图:

结论及解决:

结论分析

异步IO请求达到AIO-MAX-NR的上限,导致后续文件句柄不能生成,不能打开新的文件,所以导致归档不能打开写入到本地。

解决方案

  1. 优化内核参数,建议调整如下参数:

调整fs.aio-max-nr为当前1.5倍,并同时调整file-max、fs.aio-nr为当前1.5倍,fs.aio-nr没有设置,可以通过"sysctl -a|grep aio"命令查看当前的fs.aio-nr配置,具体设置值参考如下:

fs.aio-max-nr = 4718592

fs.file-max = 10223616

使用"sysctl -p"使参数生效。

aio-max-nr :允许的并发请求的最大个数,一是来自网络的I/O;二是对文件(设备)的I/O。

对于服务器程序,I/O是制约系统性能最关键的因素。对于需要处理大量连接的高并发服务器程序,异步I/O几乎是不二的选择。

相关推荐
黄焖鸡能干四碗17 小时前
固定资产管理系统建设方案和源码(Java源码)
大数据·数据库·人工智能·物联网·区块链
JoneBB17 小时前
ABAP Webservice连接
运维·开发语言·数据库·学习
解决问题no解决代码问题18 小时前
从乱码到脱敏导出:TiDB CSV 导出实战全指南
数据库
未若君雅裁18 小时前
MySQL高可用与扩展-主从复制读写分离分库分表
java·数据库·mysql
2401_8676239818 小时前
CSS Flex布局中如何设置子元素间距_掌握gap属性的现代用法
jvm·数据库·python
月落归舟18 小时前
一篇文章了解Redis内存淘汰机制与过期Key清理
数据库·redis·mybatis
phltxy18 小时前
Redis 事务
数据库·redis·缓存
康乾隆19 小时前
SQL Server Always On 重新添加从库步骤
数据库·sqlserver
环流_19 小时前
redis核心数据类型在java中的操作
java·数据库·redis
雨辰AI19 小时前
SpringBoot3 项目国产化改造完整流程|从 MySQL 到人大金仓落地
java·数据库·后端·mysql·政务