读书笔记之IORM---(2)


DBRM通过限制用户会(通过使用者组)可用的CPU和并行资源的方法实现对I/O资源的间接管理。


IORM提供了三种不同的方法对I/O资源进行管理:Interdatabase、Category和Intradatabase。

数据库间IORM(Interdatabase IORM):IORM基于发起请求的数据库名字决定I/O的优先级。当Exadata上托管了多个数据库,而且需要管理不同数据库的I/O优先级时,这种方法是很有用的。

类别IORM(Category IORM):IORM基于发起请求的类别决定I/O的优先级,这个请求可能来自不同数据库。当想根据工作负载类型对I/O优先级进行管理时,这种方法是很有用的。例如,可以再每个数据库中创建如APPS、BATCH、REPORTS和MAINTENANCE的类别,并根据他们业务的重要性给他们设置不同的I/O分配策略。如果APPS类别被分配了70%的资源,那么在所有数据库上属于APPS类别的回话都将同时共享这70%的资源。

数据库内部IORM(Intradatabase IORM):不像数据库间IORM和类别IORM,数据内部IORM在数据库层通过DBRM进行配置。增强后的DBRM余IORM协调工作,提供数据库内部不同使用者组之间的更细粒度的I/O资源管理。它使用MGMT_Pn属性把不同的I/O百分比和优先级分配给不同的使用者组,这与CPU的分配机制是一样的。比如,通过使用数据库间IORM,SALES数据库可能被分配了50%的资源。这些资源可以被进一步分配到APPS、REPORTS、BATCH和OTHER_GROUPS这些数据库内部的使用者组上面。这确保了关键应用程序有可用的I/O资源,同时,它可以防止数据库内部的某些I/O密集型进程从高优先级的回话那里窃取I/O资源。

IORM如何工作:IORM根据发起请求的数据库名、类别或者使用者组,把I/O请求放入各自的队列,从而实现在存储节点对I/O的管理。接着IORM根据在资源计划至所定义好的优先级对这些队列进行调度。IORM只有在需要的时候才介入管理I/O请求。的那个一个节点盘(cell disk)还没有满负荷是,cellsrv马上给这个节点盘发生I/O请求。但当一个磁盘已经满负荷运行时,cellsrv会把I/O请求重定向到合适的IORM队列,并根据定义在IORM计划里的策略吧这些I/O从那里再调度到节点盘的队列中。

注意:IORM只管理物理磁盘I/O。来自闪存(Flash Cache)或者给予闪存的网格盘(Grid Disk)上面的对象的I/O请求并不接受IORM管理。

 

                                                                                                                                              IORM架构

 

Oracle在IORM中增加了一个新的称为优化目标(objective)的属性。这个属性决定在管理节点盘I/O队列时IORM采用的优化模式,该属性有如下一些可选值:

low_latency:这个设置为I/O延迟非常敏感的应用提供优化。通过限制限制磁盘利用率,它提供了尽可能低的I/O延迟。换句话说,对吞吐量要求很高的应用将会由于这个优化目标而受到很到的(负面)影响。

high_throughput:这个设置给数据仓库事务提供了尽可能最佳的吞吐量,它会试图充分利用存储节点上的所有I/O能力。这正与low_latency相反,因此,对于磁盘I/O延迟,它有显著的(负面)影响。

Balanced:这个设置寻求在低延迟和高吞吐量之间的一个平衡。它通过对大I/O操作的磁盘利用率做一定的限制来实现,它的限制程度会低于上面描述的low_latency目标。这个目标适合于混合工作负载,并且没有要求非常低的延迟的特殊应用的场合。

Auto:这个设置允许IORM为工作负载确定一个最佳的优化目标。cellsrv会持续地健康大小两者I/O请求,并采用一个最适合的优化方法。比如,来自一个使用者组的75%或者更多的I/O操作都是小I/O(比128KB小),它将被认为是一个延迟优先级的使用者组,从而相应地得以管理。


IORM计划目标的默认值是''(一个空字符串,即null)。可以通过羡慕的cellcli命令alter iormplan objective=objective进行设置:

CellCLI> alter iormplan objective=low_latency

CellCLI> list iormplan attributes objective


 

在Exadata平台上的三种管理IO的方法:数据库建IORM、类别IORM和数据库内部IORM一起使用时,Oracle以下面的次序对IO进行管理调度:1)在类别间进行分配;2)在数据库见进行分配;3)在每个数据库内部的每个类别里面按使用者组进行分配。

 

 

 


 







注明:以上内容摘录自《深入理解Oracle Exadata》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值