关于aio的设置的讨论

简介: 之前在博文中分享过一个ora错误。 对于此,根据日志分析了相关的ora错误,但是从客户的角度还是希望能够提前做些什么,所以aio的设置就成为刻不容缓的一个任务。 但是对于aio的设置大家还是存在一定的分歧。
之前在博文中分享过一个ora错误。

对于此,根据日志分析了相关的ora错误,但是从客户的角度还是希望能够提前做些什么,所以aio的设置就成为刻不容缓的一个任务。
但是对于aio的设置大家还是存在一定的分歧。在此贴出来供大家讨论,在oracle官方文档中也没有详细的说明和建议。
首先aio的设置在/etc/sysctl.conf就有设置,里面会指定一个最大值,即aio-max-nr
对于aio的监控可以从下面的地方进行监控。
cat /proc/sys/fs/aio-max-nr
在系统中会根据系统的使用情况有对应的变化。
关于async-io的监控,下面的一个博客中有比较好的监控方案。可以参考一下
http://www.pythian.com/blog/troubleshooting-ora-27090-async-io-errors/
对于aio的设置有几种不同的争论。
在服务器上存在两个数据库实例,一个session占用在9000左右,另外一个访问量极小,不到100个session的使用情况。
根据aio的设置。有一种计算思路为:
Machine AIO consumption  : 2,558,565
Machine AIO max limit : 3,145,728
Number of sessions connected PRODB1 : 9136
Number of sessions connected PRODB2 : 35
所以根据平均值得出每个session占用的aio值为 : 2558565/9171 = 278.98… 我们假设为 280
PRODB1和PRODB2的最大session设置为: 27040,所以根据计算得出需要设置的aio值为: 27040x280 = 7,571,200

对此还有一种不同的思路,即从操作系统层面,能够和数据库进行直接映射的就是进程了,数据库中的进程和操作系统进程由对应的映射关系,所以我们应该基于进程,即process来进行计算。
在专有服务器模式下,计算思路即为:
Machine AIO consumption  : 2,558,565
Machine AIO max limit : 3,145,728
Number of sessions connected PRODB1 : 9136
Number of sessions connected PRODB2 : 35
所以根据平均值得出每个进程process占用的aio值为 : 2558565/9171 = 278.98… 我们假设为 280
PRODB1和PRODB2的最大进程设置设置为: 18000+2000,所以根据计算得出需要设置的aio值为: 20000x280 = 5,600,000
看似不经意的调整,但是结果却差别很大。

还有一种思路就是通过active session对应的进程情况进行计算,比如9000个session,但是active session只有1500左右,我们在这个时候假设并发为1500
根据并发情况得到一个aio的平均值,然后进行计算。
Machine AIO consumption  : 2,558,565
Machine AIO max limit : 3,145,728
Number of sessions connected PRODB1 : 9136 这个时候并发session为1500左右
Number of sessions connected PRODB2 : 35   这个时候假设并发为35
所以根据平均值得出每个进程process占用的aio值为 : 2558565/1535 = 1666.81759… 我们假设为1666,相比之前的计算就差别很大了。
然后根据这个值来计算对应的aio最大值设置。假设这个时候最大的进程数为18000+2000=20000,所以根据计算得到的aio值就为:33,320,000
这个计算的值相比之前就差别太大了。
不过从不同的计算计算方式来看,个人还是倾向于第2种计算。当然这个问题也是持开放的态度,大家也可以提供意见,大家一起讨论。

当然不能给客户这三种思路让他们选,我们也是把前两种的思路结合起来,给了一个基本平均的值,这样下来aio的设置不会奇高,增长幅度也差不多在30%左右,但是还是有一定幅度的提升, 对于其它的参数影响也不会有很大的梯度。
之后就是建议客户计划进行数据库实例的重启使得这些参数变更生效了。



目录
相关文章
|
存储 关系型数据库 MySQL
Linux Centos9 Stream 安装mysql8
Linux Centos9 Stream 安装mysql8
2424 1
|
1天前
|
人工智能 JavaScript Linux
【Claude Code 全攻略】终端AI编程助手从入门到进阶(2026最新版)
Claude Code是Anthropic推出的终端原生AI编程助手,支持40+语言、200k超长上下文,无需切换IDE即可实现代码生成、调试、项目导航与自动化任务。本文详解其安装配置、四大核心功能及进阶技巧,助你全面提升开发效率,搭配GitHub Copilot使用更佳。
|
3天前
|
存储 人工智能 自然语言处理
OpenSpec技术规范+实例应用
OpenSpec 是面向 AI 智能体的轻量级规范驱动开发框架,通过“提案-审查-实施-归档”工作流,解决 AI 编程中的需求偏移与不可预测性问题。它以机器可读的规范为“单一真相源”,将模糊提示转化为可落地的工程实践,助力开发者高效构建稳定、可审计的生产级系统,实现从“凭感觉聊天”到“按规范开发”的跃迁。
597 11
|
7天前
|
存储 JavaScript 前端开发
JavaScript基础
本节讲解JavaScript基础核心知识:涵盖值类型与引用类型区别、typeof检测类型及局限性、===与==差异及应用场景、内置函数与对象、原型链五规则、属性查找机制、instanceof原理,以及this指向和箭头函数中this的绑定时机。重点突出类型判断、原型继承与this机制,助力深入理解JS面向对象机制。(238字)
|
6天前
|
云安全 人工智能 安全
阿里云2026云上安全健康体检正式开启
新年启程,来为云上环境做一次“深度体检”
1622 6
|
2天前
|
消息中间件 人工智能 Kubernetes
阿里云云原生应用平台岗位急招,加入我们,打造 AI 最强基础设施
云原生应用平台作为中国最大云计算公司的基石,现全面转向 AI,打造 AI 时代最强基础设施。寻找热爱技术、具备工程极致追求的架构师、极客与算法专家,共同重构计算、定义未来。杭州、北京、深圳、上海热招中,让我们一起在云端,重构 AI 的未来。
|
5天前
|
IDE 开发工具 C语言
【2026最新】VS2026下载安装使用保姆级教程(附安装包+图文步骤)
Visual Studio 2026是微软推出的最新Windows专属IDE,启动更快、内存占用更低,支持C++、Python等开发。推荐免费的Community版,安装简便,适合初学者与个人开发者使用。
623 10
|
8天前
|
缓存 算法 关系型数据库
深入浅出分布式 ID 生成方案:从原理到业界主流实现
本文深入探讨分布式ID的生成原理与主流解决方案,解析百度UidGenerator、滴滴TinyID及美团Leaf的核心设计,涵盖Snowflake算法、号段模式与双Buffer优化,助你掌握高并发下全局唯一ID的实现精髓。
372 160
|
7天前
|
人工智能 自然语言处理 API
n8n:流程自动化、智能化利器
流程自动化助你在重复的业务流程中节省时间,可通过自然语言直接创建工作流啦。
458 6
n8n:流程自动化、智能化利器