《第4课 RAC的性能.pdf》由会员分享,可在线阅读,更多相关《第4课 RAC的性能.pdf(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、DATAGURU专业数据分析网站 2013.2.28 Oracle高可用 第四课-RAC的性能2DATAGURU专业数据分析网站2013.2.28法律声明【声明】本视频和幻灯片为炼数成金网络课程的教学资料,所有资料只能在课程内使用,不得在课程以外范围散播,违者将可能被追究法律和经济责任。课程详情访问炼数成金培训网站http:/2013-7-8DATAGURU专业数据分析网站2013.2.28在进行RAC优化之前,你应该.应用层面的优化 单实例的优化 操作系统的优化接下来,开始RAC优化.2013-7-8DATAGURU专业数据分析网站2013.2.28RAC的性能-第一个问题RAC究竟能否提高
2、性能?看你怎么使用它!2013-7-8DATAGURU专业数据分析网站2013.2.28RAC的性能-第二个问题RAC的节点数和性能是什么关系?看你怎么使用它!2013-7-8DATAGURU专业数据分析网站2013.2.28结论看你怎么使用它!2013-7-8DATAGURU专业数据分析网站2013.2.28测试才是王道2013-7-8DATAGURU专业数据分析网站2013.2.28 RAC架构中性能的影响因素 单台数据库物理性能影响因素I/O效率CPU效率内存效率网络效率 RAC架构物理性能影响因素I/O效率CPU效率内存效率cache fusion效率锁定,数据在内存中的传递,消息的传
3、递。网络效率内连网络效率(interconnection)节点间的负载平衡2013-7-8DATAGURU专业数据分析网站2013.2.28内存共享的问题-cache fusion 多个物理独立的内存,意味着:内存共享锁定数据传输2013-7-8DATAGURU专业数据分析网站2013.2.28内连网络-interconnect 稳定的网络传输。尽可能快的网络传输通道,减少数据在内存间拷贝的时间。2013-7-8DATAGURU专业数据分析网站2013.2.28内存数据一致性的效率因素:寻找内存中的数据块 确定RAC的master节点 从interconnect获取数据块 interconne
4、ct网络传输速率 interconnect网络延迟 从其它实例接受数据块 创建数据块一致性镜像(image)2013-7-8DATAGURU专业数据分析网站2013.2.28内存数据一致性带来的额外代价 数据块访问代价需要访问更多地数据块-消耗更多的时间 锁管理的代价更多的内存锁定-消耗更多的时间 内连网络代价网络延迟网速更多地数据需要传递-消耗更多的时间2013-7-8DATAGURU专业数据分析网站2013.2.28优化RAC的 cache fusionRAC优化的主要关注点:GCS Global Cache Service2013-7-8DATAGURU专业数据分析网站2013.2.28
5、优化RAC的 cache fusionGlobal Cache Services(GCS)Waits说明有多少数据消息在实例内存间传递2013-7-8DATAGURU专业数据分析网站2013.2.28GCS相关的等待事件 数据块相关的等待事件gc current block 2-waygc current block 3-waygc cr block 2-waygc cr block 3-way 消息相关的等待事件gc current grant 2-waygc cr grant 2-way2013-7-8DATAGURU专业数据分析网站2013.2.28gc current|cr grant
6、 2-wayInstance 1Instance 2SessionDatabaseLMSLGWRLog BufferLog BufferLMSgc current block requestgc current grant 2-way2013-7-8DATAGURU专业数据分析网站2013.2.28gc current block 2-way2013-7-8DATAGURU专业数据分析网站2013.2.28gc current block 3-way2013-7-8DATAGURU专业数据分析网站2013.2.28GCS相关的等待事件 块争用相关的等待gc current block busy
7、gc cr block busygc buffer busy 负载相关的等待gc current block congestedgc cr block congested2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化 gv$session_wait SELECT inst_id,event,p1 FILE_NUMBER,p2 BLOCK_NUMBER,WAIT_TIME FROM gv$session_wait WHERE event=global cache busy;2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待
8、事件的优化 INST_ID EVENT FILE_NUMBER BLOCK_NUMBER WAIT_TIME-1 global cache busy 9 150 15 2 global cache busy 9 150 10 文件号和数据块号可以定位到等待的对象信息2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化定位对象SELECT owner,segment_name,segment_type FROM dba_extents WHERE file_id=9 AND 150 between block_id AND block_id+blocks-1
9、;2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化 OWNER SEGMENT_NAME SEGMENT_TYPE-TEST TEST_IND INDEX 2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化修改对象,以避免数据块的争用(热块)减少每个数据块的行数减少数据块的大小修改数据块头INITRANS 和 FREELISTS2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化一致性度的GCS的性能指标:.Total time spent by the BSP proces
10、s in log flushes after sending a constructed consistent-read(CR)block.global cache cr block log flush timeTotal number of blocks constructed by the BSP processglobal cache cr blocks servedTotal time spent by the BSP process sending a constructed consistent-read(CR)block.global cache cr block send ti
11、meTotal amount of time the BSP(Block Server Process process)took to construct consistent-read(CR)blocks.global cache cr block serve timeglobal cache cr block receive timeTotal amount of time foreground processes waited for a CR block to be sent through the interconnect.2013-7-8DATAGURU专业数据分析网站2013.2
12、.28基于GCS等待事件的优化SELECT a.inst_id Instance,(a.value+b.value+c.value+d.value)/decode(e.value,0,1,d.value)BSP Service Time FROM gv$sysstat A,gv$sysstat B,gv$sysstat C,gv$sysstat D,gv$sysstat E WHERE A.name=global cache cr block serve time AND B.name=global cache cr block send time AND C.name=global cach
13、e cr block log flush time AND D.name=global cache cr block receive time AND E.name=global cache cr blocks served AND B.inst_id=A.inst_id AND C.inst_id=A.inst_id AND D.inst_id=A.inst_id AND E.inst_id=A.inst_idORDER BY a.inst_id;2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化 结果:Instance BSP Service Tim
14、e-1 1.07933923 2 .636687318实例实例2节点处理数据节点处理数据比较慢比较慢实例实例1节点处理数据比节点处理数据比较快较快2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化 进一步查询,可以看到更深入的信息SELECT A.inst_id Instance,(A.value/D.value)Consistent Read Build,(B.value/D.value)Log Flush Wait,(C.value/D.value)Send Time FROM GV$SYSSTAT A,GV$SYSSTAT B,GV$SYSSTAT
15、 C,GV$SYSSTAT DWHERE A.name=global cache cr block build time AND B.name=global cache cr block flush time AND C.name=global cache cr block send time AND D.name=global cache cr blocks served AND B.inst_id=a.inst_id AND C.inst_id=a.inst_id AND D.inst_id=a.inst_idORDER BY A.inst_id;Instance Consistent R
16、ead Build Log Flush Wait Send Time-1 .00737234 1.05059755 .02203942 2 .04645529 .51214820 .07844674 2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化涉及到Interconnect 性能的指标:Blocks that were corrupted during transfer.High values indicate an IPC,network,or hardware problem.global cache blocks corruptBlock l
17、osses during transfers.May indicate network problems.global cache blocks lost2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化SELECT A.VALUE GC BLOCKS LOST 1,B.VALUE GC BLOCKS CORRUPT 1,C.VALUE GC BLOCKS LOST 2,D.VALUE GC BLOCKS CORRUPT 2 FROM GV$SYSSTAT A,GV$SYSSTAT B,GV$SYSSTAT C,GV$SYSSTAT D WHERE A.
18、INST_ID=1 AND A.NAME=gc blocks lost AND B.INST_ID=1 AND B.NAME=gc blocks corrupt AND C.INST_ID=2 AND C.NAME=gc blocks lost AND D.INST_ID=2 AND D.NAME=gc blocks corrupt GC BLOCKS LOST 1 GC BLOCKS CORRUPT 1 GC BLOCKS LOST 2 GC BLOCKS CORRUPT 2-0 0 652 0 实例实例2丢失了很多数据块丢失了很多数据块2013-7-8DATAGURU专业数据分析网站201
19、3.2.28基于GCS等待事件的优化 看看具体的细节信息:SELECT A.INST_ID INSTANCE,A.VALUE GC BLOCKS LOST,B.VALUE GC CUR BLOCKS SERVED,C.VALUE GC CR BLOCKS SERVED,A.VALUE/(B.VALUE+C.VALUE)RATIOFROM GV$SYSSTAT A,GV$SYSSTAT B,GV$SYSSTAT CWHERE A.NAME=global cache blocks lost AND B.NAME=global cache current blocks served AND C.NA
20、ME=global cache cr blocks served and B.INST_ID=a.inst_id AND C.INST_ID=a.inst_id;Instance gc blocks lost gc cur blocks served gc cr blocks served RATIO-1 0 3923 2734 0 2 652 3008 4380.088251218本次测试中实例本次测试中实例1用了用了22秒秒 实例实例2 用了用了2。5分钟分钟 2013-7-8DATAGURU专业数据分析网站2013.2.28interconnect的优化 用操作系统层面的命令,看一下in
21、terconnect连接是否有问题:netstat ifconfig interconnect 有一个专有的私网 interconnect 没有通过public 网络进行数据传输2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化 涉及到current read的GCS相关指标:The time it takes to flush the changes to a block to disk(forced log flush),before the block is shipped to the requesting instance.global cac
22、he block flush timeThe time it takes to send the current block to the requesting instance over the interconnect.global cache block send timeThe time it takes to pin the current block before shipping it to the requesting instance.gc current block pin timeThe number of current blocks shipped to the re
23、questing instance over the interconnect.global cache current blocks served2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化参照之前的例子,可以得到这样的结果:Instance Current Blk Service Time-1 1.18461603 2 1.63126376Instance 的数据块时间差不多比实例多38%2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化SELECT A.inst_id Instance,(A.value
24、/D.value)Current Block Pin,(B.value/D.value)Log Flush Wait,(C.value/D.value)Send TimeFROM GV$SYSSTAT A,GV$SYSSTAT B,GV$SYSSTAT C,GV$SYSSTAT DWHERE A.name=global cache current block build time AND B.name=global cache current block flush time AND C.name=global cache current block send time AND D.name=
25、global cache current blocks served AND B.inst_id=a.inst_id AND AND C.inst_id=a.inst_id AND AND D.inst_id=a.inst_idORDER BY A.inst_id;Instance Current Block Pin Log Flush Wait Send Time-1 .69366887 .472058762.018196236 2 1.07740715 .480549199.072346418 pin times 用时比较长也许意味着实例的I/O性能有问题。2013-7-8DATAGURU
26、专业数据分析网站2013.2.28基于GCS等待事件的优化n 最后一组和GCS相关的指标:Resource converts on buffer cache blocks.Incremented whenever GCS resources are converted from Null to Exclusive,shared to Exclusive,or Null to Shared.global cache convertsThe accumulated time of all sessions needed to open a GCS resource for a local buff
27、er.global cache get timeThe number of buffer gets that result in opening a new resource with the GCS.Global cache getsThe accumulated time that all sessions require to perform global conversion on GCS resourcesglobal cache convert timeGCS:Global Cache Services.通过Interconnect进行数据传输和处理的进程2013-7-8DATAG
28、URU专业数据分析网站2013.2.28基于GCS等待事件的优化SELECT A.inst_id Instance,A.value/B.value Avg Cache Conv.Time,C.value/D.value Avg Cache Get Time,E.value GC Convert Timeouts FROM GV$SYSSTAT A,GV$SYSSTAT B,GV$SYSSTAT C,GV$SYSSTAT D,GV$SYSSTAT WHERE A.name=global cache convert time AND B.name=global cache converts AND
29、 c.name=global cache get time AND D.name=global cache gets AND E.name=global cache convert timeouts AND B.inst_id=A.inst_id and AND C.inst_id=A.inst_id and AND D.inst_id=A.inst_id and AND E.inst_id=A.inst_idORDER BY A.inst_id;Instance Avg Cache Conv.Time Avg Cache Get Time GC Convert Timeouts-1 1.85
30、812072 .981296356 0 2 1.65947528 .627444273 0 实例1比实例2的convert time更高,说明从实例2获得和转化操作消耗的时间更长,原因是实例2的CPU比较慢 2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化 关于convert和get的解释:System contention.Could indicate serious performance problems.Non-zero GC converts TimeoutsExcessive system loadsHigh latencies for r
31、esource operationsGCS contentionLarge values or rapid increases in gets,converts or average timesInstances swapping a lot of blocks over the interconnectHigh convert times2013-7-8DATAGURU专业数据分析网站2013.2.28基于GCS等待事件的优化n 可以通过一个比例,来评价某个实例的GCS的请求情况:global cache gets+global cache converts+global cache cr
32、blocks rcvd+global cache current blocks rcvdconsistent gets+db block getsSum of GCS requestsNumber of logical reads2013-7-8DATAGURU专业数据分析网站2013.2.28聋桑SELECT a.inst_id Instance,(A.VALUE+B.VALUE+C.VALUE+D.VALUE)/(E.VALUE+F.VALUE)GLOBAL CACHE HIT RATIO FROM GV$SYSSTAT A,GV$SYSSTAT B,GV$SYSSTAT C,GV$SYS
33、STAT D,GV$SYSSTAT E,GV$SYSSTAT FWHERE A.NAME=global cache gets AND B.NAME=global cache converts AND C.NAME=global cache cr blocks received AND D.NAME=global cache current blocks received AND E.NAME=consistent gets AND F.NAME=db block gets AND B.INST_ID=A.INST_ID AND C.INST_ID=A.INST_ID AND D.INST_ID
34、=A.INST_ID AND E.INST_ID=A.INST_ID AND F.INST_ID=A.INST_ID;Instance GLOBAL CACHE HIT RATIO-1 .02403656 2 .014798887 基于GCS等待事件的优化自实例启动之后的累计自实例启动之后的累计自实例启动之后的累计自实例启动之后的累计2013-7-8DATAGURU专业数据分析网站2013.2.28AWR中RAC相关的部分2013-7-8DATAGURU专业数据分析网站2013.2.28RAC的优化设计 一对矛盾体充分利用所有RAC节点的资源尽量减少Interconnect的数据传输 既要充分
35、利用节点的资源和计算能力,又要避免Interconnect导致的性能下降 按照实际情况进行平衡处理结论测试,测试,还是测试!2013-7-8DATAGURU专业数据分析网站2013.2.28RAC的优化设计-业务分割 优点避免数据在实例内存间传递导致的性能下降。劣势数据无法使用全部的节点资源2013-7-8DATAGURU专业数据分析网站2013.2.28RAC的优化设计-业务分割 根据业务增加各自的服务 客户端连接到各自的服务上2013-7-8DATAGURU专业数据分析网站2013.2.28RAC的优化设计-并行查询 默认情况下,Oracle会将并行子进程尽可能的放到各个实例上执行,可能有
36、正面和负面的影响:正面 多个实例处理数据,充分利用系统资源。负面 大量的数据需要在实例的内存间传递,影响性能。2013-7-8DATAGURU专业数据分析网站2013.2.28RAC的优化设计-并行查询 结论:如果充分利用资源更能提高并行效果,就把并行分布到各个实例上执行。如果Interconnect导致严重的性能下降,就考虑把并行开在一个实例上。2013-7-8DATAGURU专业数据分析网站2013.2.28RAC的优化设计-并行查询 并行进程的限制parallel_instance_groupinstance-group2013-7-8DATAGURU专业数据分析网站2013.2.28R
37、AC的优化设计-对象的设计 Hot Table数据块存放少量的行减少数据块在多个实例间的争用。partition?让数据落在多个段上,减少段访问的争用(段头热块)。2013-7-8DATAGURU专业数据分析网站2013.2.28RAC性能的定位-对象的设计反向索引(无法进行range scan操作)避免从多个实例访问索引(业务分割)顺序键值索引2013-7-8DATAGURU专业数据分析网站2013.2.28RAC性能的定位-对象的设计 Hot Sequences将多一些的sequences cache到内存当中。2013-7-8DATAGURU专业数据分析网站2013.2.28RAC的优化
38、设计-对象的设计 readonly?将read only的表放到readonly表空间上,减少数据块的一致性维护锁定,避免表空间上的checkpoint操作。2013-7-8DATAGURU专业数据分析网站2013.2.28RAC的优化设计-总结 如果可能,业务分割。如果可能,限制并行在一个实例上运行(测试)Interconnect速度尽可能的快 Sequence 尽可能cache多一些 表空间的READ ONLY 对于小表,尽可能减少每个数据块中的数据。避免大表的全表扫描。53DATAGURU专业数据分析网站2013.2.28炼数成金逆向收费式网络课程Dataguru(炼数成金)是专业数据分析网站,提供教育,媒体,内容,社区,出版,数据分析业务等服务。我们的课程采用新兴的互联网教育形式,独创地发展了逆向收费式网络培训课程模式。既继承传统教育重学习氛围,重竞争压力的特点,同时又发挥互联网的威力打破时空限制,把天南地北志同道合的朋友组织在一起交流学习,使到原先孤立的学习个体组合成有组织的探索力量。并且把原先动辄成千上万的学习成本,直线下降至百元范围,造福大众。我们的目标是:低成本传播高价值知识,构架中国第一的网上知识流转阵地。关于逆向收费式网络的详情,请看我们的培训网站 http:/DATAGURU专业数据分析网站ThanksFAQ曳露