您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 【甲骨文】Oracle Exadata的混合工作负载管理-XXXX511
1OracleExadata的混合工作负载管理NancyGuo郭颖忠SeniorSalesConsultant+86.10.827877583•8台数据库服务器–总共96CPU核心–总内存高达768GB•14台Exadata存储服务器–5.3TBPCI闪存–25GB/s高性能SAS磁盘或–14GB/s高容量SAS磁盘•3台SunDatacenterInfiniBand36端口交换机–36端口的QDR(40Gb/秒)InfiniBand交换机OracleExadataDatabaseMachineX2-2整合所需要的卓越性能4•2台数据库服务器–总共128CPU核心–总内存高达2TB•14台Exadata存储服务器–5.3TBPCI闪存–25GB/s高性能SAS磁盘或–14GB/s高容量SAS磁盘•3台SunDatacenterInfiniBand36端口交换机–36端口的QDR(40Gb/秒)InfiniBand交换机OracleExadataDatabaseMachineX2-8整合所需要的卓越性能5OracleExadata做为一个整合平台•X2-2与X2-8都具有重要的资源–理想的整合平台•最流行的整合类型–多数据库共享多服务器–多数据库共享多存储单元–多应用系统共享一个数据库–多数据仓库整合成一个数据仓库•为什么说整合中资源管理是至关重要的–出乎意料的、爆炸性工作负载–并发执行Oracle提供哪些资源管理工具?6Oracle的资源管理工具•类型–在同一数据库中–二个数据库之间•控制–策略驱动的资源分配–资源限制•资源–CPU–磁盘I/O–并行服务器7部分1在数据库中通过资源管理器管理多个工作负载8在Exadata数据仓库中的混合工作负载企业级数据仓库Tactical的在线应用系统•CRM系统•股票跟踪调整工作负载要求一致地优秀性能传统报表•连续运行的报表•大型批量作业稳健的性能需求深入分析•预制模型•情景分析•数据挖掘资源密集和不可预测往往破坏系统ETL•批量数据加载•缓慢数据加载基于一天内时间的各种性能需求9步骤1:确认工作–为每一类型工作创建ConsumerGroups–创建动态匹配ConsumerGroups会话的规则TacticalReportsLow-Priorityservice=‘CRM’clientprogram=‘OBIEE’clientprogram=‘OBIEE’&&module=‘AdHoc’clientprogram=‘OracleDataMining’queryhasbeenrunning1hourestimatedexecutiontimeofquery12hoursservice=‘ETL’匹配ConsumerGroups会话的规则ConsumerGroupsETL10ConsumerGroup匹配的属性会话(Session)属性:•Oracleusername•ClientO/Susername•Clientprogramname•Clientmachinename•Clientid•Servicename•Modulename•Actionname查询属性:•Estimatedexecutiontime•CPUtimeusedsofar•I/Orequestsissuedsofar•AmountofI/Oissuedsofar•Functionbeingperformed•“backup”(RMAN)•“dataload”(datapump)11步骤2:管理CPU白天时间计划Level1Level2Tactical100%报表80%ETL20%将所有核心会话没有用到的CPU资源再分配給报表和ETL的会话DBA可以创建一个給ETL分配更多CPU的夜间时间计划(NightTimePlan)•使用ResourcePlan将CPU资源分配給ConsumerGroups•就像OS一样,有非常细粒度的调度–ResourceManager以100毫秒调度会话运行–在所有运行的会话中,部分会话运行更频繁12Oracle-内部CPU队列CPUResourceManagerResourcePlan:OLTP75%Reports25%(OLTP占用了3/4时间)OLTPReports等待“resmgr:cpuquantum”事件的Sessions排好的每100ms的Sessions使用ResourceManager调度CPU13共同关心的问题1)为什么只有当CPU的利用率达到100%时,才启用ResourceManager?•我们的算法是要充分使用所有CPU•快速启用意味着:–CPU资源不足–当CPUResourceManager启动时,应用系统的运行会稍慢•调度工作是基于当前状态,而不是过去状态•使用“InstanceCaging”可以将ResourceManager的启用提前2)CPUResourceManager是否加速数据库?•不会–如果CPU资源管理加速了重要工作的性能,一定是以牺牲其它工作为代价的.14共同关心的问题3)CPUResourceManager会降低我的数据库性能吗?•不会–如果监测到有性能下降,一定是bug!4)为什么只有一个数据库的工作负载激活CPUResourceManager?•稳定O/S–过多的O/S运行队列会导致系统不稳定•后台进程被分配足够CPU–任何关键的后台进程,如PMON总是可以立即运行•避免RAC环境中的实例被仲裁出集群–LMS进程被分配足够CPU15步骤3:管理磁盘I/O•即使在Exadata上,磁盘带宽都是一个至关重要的资源–是出色查询性能的关键吗?查询可以充分利用每一块磁盘的带宽–多个并发的并行查询导致严重磁盘负载及长时间磁盘延迟•解决方案–Exadata的I/OResourceManager–通过DatabaseResourcePlan配置Exadata的I/OResourceManager–使用相同的计划管理CPU和I/O白天时间计划Level1Level2核心的100%报表80%ETL20%16Exadata的I/OResourceManagerExadata存储单元OLOLBBBB低优先级I/Os后台I/Os数据库I/O资源管理器数据库资源计划待处理的I/O请求报表I/OsOOOLTPI/Os•发出足够的I/O确保每块磁盘都在工作,其余的排队等待.•一个I/O完成时:–挑选一个ConsumerGroup队列–从队列头发出一个I/O请求TRRRROOOLOOO磁盘17独一无二的I/OResourceManager•只有OracleExadata能提供–没有任何一个软、硬件厂商能够管理Oracle的I/O–使用Exadata的iDB协议,所有I/O都带有下面标签:•Databaseid•ConsumerGroupid•Backgroundid•I/O发起的原因•IORM将关键的I/O分为优先级–logwrites,checkpoints,controlfile•IORM对非关键I/O降低级别–DBWRagedbufferwrites18步骤4:管理并行执行•并行服务(Parallelservers)是一种有限资源•由parallel_max_servers指定限制•太多并发的并行语句会引发系统不稳定•当没有可用的并行服务时•关键语句会串行运行•如果又有并行服务空出时,运行语句的并发度(DOP)也无法提升•解决方案•并行语句队列•可通过设置parallel_degree_policy=“auto”实现19并行语句队列原理:1.运行足够多并行语句以充分利用系统资源2.接下来的并行语句进行排队3.当系统稳定后可从队列中放出一条并行语句•如何确保重要的查询最先从队列中放出?–使用ResourceManager配置一个策略•如何确保重要的查询不会被排进队列?–通过ConsumerGroup限制并行服务的使用–通过ConsumerGroup限制并行度20可用的服务:16将并行语句排序©2010OracleCorporation64Tactical队列Batch队列Ad-Hoc队列ResourcePlan:优先级1:Tactical优先级2,70%:Batch优先级2,30%:Ad-Hoc并行语句队列协调器运行队列当有可用的并行服务时,资源计划会选择一个队列。队列头的并行语句得以运行由于Tactical的优先级是1,它的并行语句总是被最先选择。由于没有更多的Tactical并行语句,则可以选择Batch或Ad-Hoc。70%时间都选择了Batch可用的服务:021可用的服务:32为关键工作预订并行服务©2010OracleCorporation64Tactical队列Batch队列Ad-Hoc队列资源计划:优先级1:Tactical优先级2,70%:Batch优先级2,30%:Ad-Hoc运行队列并行语句队列协调器由于有可用的并行服务,Tactical查询可被立即执行可用的服务:48可用的服务:64Batch限定只能使用50%并行服务22步骤5:限制资源使用需求•工作负载的一致、可预测的性能•内部环境与部门级应用系统的使用解决方案•收集ConsumerGroup的CPU使用•收集ConsumerGroup的磁盘使用©2010OracleCorporationDayTimePlan分配限制Tactical60%销售报表15%30%市场报表15%30%ETL10%23步骤6:管理Runaway查询定义runaway查询:•估计好的执行时间•实际执行时间•实际I/O数•实际I/O字节管理runaway查询:•切换到另一个consumergroup–低优先级consumergroup–带有CPU和磁盘I/O使用限制的•中断调用•杀掉session24管理Runaway查询对于Tacticalconsumergroup,runaway是指:超过30秒对于Ad-Hoc的consumergroup,runaway是指:估计还要执行超过24小时不再执行!切换到“低优先级”consumergroup!对于报表consumergroup,runaway是指:超过32GB的I/O中断查询!25步骤7:监控与调优©2010OracleCorporation26企业管理器用户界面27资源管理器-端到端测试场景:•在一个数据仓库中有二个工作–Tactical查询(短TPC-H查询)–批处理工作(长TPC-H查询)•目标:–进行Tactical查询时也运行批处理工作–不能影响Tactical查询的响应时间!©2010OracleCorporation28资源管理器-端到端©2010OracleCorporation29部分2在Exadata上使用资源管理器整合多个数据库30©2010OracleCorporationExadata服务器Exadata存储单元服务器整合•更好利用服务器-X2-8有128CPU核心!•有些部署还没为数据库整合预备好数据库B数据库A数据库C数据库A数据库B数据库C存储整合•更多单元=更高的峰值吞吐量•更好利用存储单元•ASM三重冗余需要更多磁盘X整合31步骤1:实例化限制(instancecaging)•Oracle以能限制一个数据库实例任何时候可以使用的CPU量为特色•服务器整合的重要工具•只有2个步骤:1.设置“cpu_count”参数•将实例在任何时候可以使用的CPU数量最大化2.设置“resource_manager_plan”参数•启动CPU资源管理器•例如:外部计划“DEFAULT_PLAN”32没有使用InstanceCaging的CPU用法©2010OracleCorporation运行进程O/S上的运行队列等待CPU一个数据库实例的oracle进程尝试使用所有CPU33使用实例化限制的CPU用法©2010OracleCorporation运行进程资源管理器上等待CPU的运行队列InstanceCaging限制任何时候运行的O
本文标题:【甲骨文】Oracle Exadata的混合工作负载管理-XXXX511
链接地址:https://www.777doc.com/doc-13590 .html