当前位置: 首页 > news >正文

关于aio的设置的讨论(r5笔记第69天)

之前在博文中分享过一个ora错误。0?wx_fmt=gif对于此,根据日志分析了相关的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,565Machine AIO max limit : 3,145,728Number of sessions connected PRODB1 : 9136Number of sessions connected PRODB2 : 35所以根据平均值得出每个session占用的aio值为 : 2558565/9171 = 278.98… 我们假设为 280PRODB1和PRODB2的最大session设置为: 27040,所以根据计算得出需要设置的aio值为: 27040x280 = 7,571,200对此还有一种不同的思路,即从操作系统层面,能够和数据库进行直接映射的就是进程了,数据库中的进程和操作系统进程由对应的映射关系,所以我们应该基于进程,即process来进行计算。在专有服务器模式下,计算思路即为:Machine AIO consumption : 2,558,565Machine AIO max limit : 3,145,728Number of sessions connected PRODB1 : 9136Number of sessions connected PRODB2 : 35所以根据平均值得出每个进程process占用的aio值为 : 2558565/9171 = 278.98… 我们假设为 280PRODB1和PRODB2的最大进程设置设置为: 18000+2000,所以根据计算得出需要设置的aio值为: 20000x280 = 5,600,000看似不经意的调整,但是结果却差别很大。还有一种思路就是通过active session对应的进程情况进行计算,比如9000个session,但是active session只有1500左右,我们在这个时候假设并发为1500根据并发情况得到一个aio的平均值,然后进行计算。Machine AIO consumption : 2,558,565Machine AIO max limit : 3,145,728Number 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%左右,但是还是有一定幅度的提升, 对于其它的参数影响也不会有很大的梯度。之后就是建议客户计划进行数据库实例的重启使得这些参数变更生效了。

相关文章:

  • 一条sql语句的改进探索(r5笔记第70天)
  • 海量数据迁移之传输表空间(一) (r5笔记第71天)
  • 数据刷新中的并行改进(r5笔记第72天)
  • 一条sql语句的建议调优分析(r5笔记第73天)
  • 泰国之旅随感(r1笔记第70天)
  • 曼谷周末游(r5笔记第74天)
  • 使用flashback query巧妙抽取指定数据(r5笔记第75天)
  • 数据刷新中的并行改进(二) (r5笔记第76天)
  • 养鱼生活的一段终结(r5笔记第77天)
  • oracle监控工具ignite使用图解(r5笔记第78天)
  • 数据刷新中的并行改进(三) (r5笔记第79天)
  • 浅谈exp/imp(上) (r5笔记第81天)
  • dataguard中MRP无法启动的问题分析和解决(r5笔记第82天)
  • tomcat源码编译和环境搭建(r5笔记第83天)
  • 浅谈exp/imp(下) (r5笔记第84天)
  • [译] 怎样写一个基础的编译器
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 77. Combinations
  • Angular 2 DI - IoC DI - 1
  • CentOS 7 修改主机名
  • ComponentOne 2017 V2版本正式发布
  • IOS评论框不贴底(ios12新bug)
  • MYSQL 的 IF 函数
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • TypeScript实现数据结构(一)栈,队列,链表
  • vue-router的history模式发布配置
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 汉诺塔算法
  • 你不可错过的前端面试题(一)
  • 驱动程序原理
  • 入手阿里云新服务器的部署NODE
  • 我感觉这是史上最牛的防sql注入方法类
  • 异步
  • 国内开源镜像站点
  • 如何正确理解,内页权重高于首页?
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (+4)2.2UML建模图
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (黑马C++)L06 重载与继承
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (十)c52学习之旅-定时器实验
  • (循环依赖问题)学习spring的第九天
  • (一)80c52学习之旅-起始篇
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)Linux下编译安装log4cxx
  • (转载)CentOS查看系统信息|CentOS查看命令
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • 、写入Shellcode到注册表上线