《Oracle数据库性能优化方法论和最佳实践》——2.5 基于资源瓶颈分析的优化方法论

2.5 基于资源瓶颈分析的优化方法论

2.5.1 基于资源瓶颈分析优化方法论简述
Oracle要做优化,大部分人首先会想到瓶颈在哪里?资源瓶颈分析是如此之普及,以至于无论懂还是不懂的人都知道“瓶颈”这个术语,都知道性能优化首先要找到这个瓶颈,然后消除这个瓶颈。数据库系统的资源主要包括:CPU、内存和虚拟内存、I/O子系统、网络子系统。
绝大部分开发人员在写程序的时候都假设资源是无限的,CPU是无限快,内存是无限多,磁盘无限大并且像内存一样快,网络带宽无限并且像光速一样运行。事实上,大家都知道,Oracle数据库总是在资源有限的环境下运行,我们总是在资源有限的环境下生存和发展。瓶颈分析就是建立在资源有限的运行环境下,通过发现瓶颈和消除瓶颈的过程来改善数据库或者业务系统性能。
只要数据库系统的资源足够,业务系统一定会良好运行,这是资源瓶颈分析优化理论的信条。每个有一定经验的DBA都知道,真正考验Oracle数据库吞吐量的是其并发处理能力,而不是资源供给能力,充分的资源并不能完全保障业务系统的快速运行。Oracle从本质上是一个巨大的串行同步系统,需要大量的lock、latch和mutex的支持才可以实现互不干扰的访问,充分的资源有助于Oracle快速通过串行通道,但无法保证在串行通道发生的冲突。
基于资源瓶颈分析的优化方法论具有以下局限性。
充分的资源并不能保证业务系统具备高性能。
资源之间的瓶颈会相互转化,CPU瓶颈的消失会导致输入、输出瓶颈,内存瓶颈的消失会导致CPU瓶颈。
资源利用率过高是性能不佳的滞后性指标表现,它只是其他藏在后面的真实原因的最后表现。
我们可以用下面几个简单的描述性场景来描述资源瓶颈分析优化方法论的局限性。
简单场景描述一:一个大量行锁冲突的系统,可以发现冲突严重时CPU和I/O会极度空闲,而这时业务会几乎挂起。
简单场景描述二:一个高吞吐量事务提交的系统,可以发现整体I/O资源空闲,某块磁盘I/O特别紧张,你会发现无法利用大量空闲的I/O资源。
简单场景描述三:一个资源极为空闲的系统,系统吞吐量不佳,而且无法增加资源利用率以提高系统吞吐量。
简单场景描述四:一个资源空闲的系统,响应时间总是无法满足。
2.5.2 主要的数据库服务资源供给
数据库服务器主要包含4类基础资源供给:CPU、内存、磁盘和网络。这4类基础资源具有完全不同的处理能力特征。一般来说具有以下递减关系:CPU >内存>>磁盘≈网络。磁盘还可以通过缓存、并行读取来获得很高的带宽,而对于网络,万兆网卡也才能达到理论1000MB/s的吞吐量,而且一般服务器的网卡接口有限,网络几乎无法提供与其他3大资源匹配的吞吐量。从这个匹配关系出发,几乎要求所有的业务系统都被设计成只需要获取一小部分数据返回客户端,也可以看出,有大量数据返回的业务系统网络也会成为瓶颈所在。
在主要的4类资源中,内存具有黏合剂的作用,可以作为CPU、磁盘和网络之间的缓冲,使资源之间的能力更加匹配。在高内存系统中,如何有效使用内存来解决各类资源瓶颈是资源瓶颈优化实践中的主要课题。
磁盘和网络由于其天生具有带宽不足的特性,在大部分业务系统中,磁盘和网络会成为所谓的资源瓶颈所在。有两种不同的手段来完成存储系统和网络系统的改善。
以内存和CPU资源来换取磁盘和网络资源是一种常用的手段,比如大规模缓存、传输数据压缩等。
减少存储系统、网络系统和服务器之间的数据交互,采用分布式计算、智能化存储系统和网络系统只返回绝对必需的数据,从而减少数据交互。比如Oracle Exadata一体机的主要目标就是减少存储和服务器之间数据的交互,通过减少数据交互来大规模改善性能。
2.5.3 有效运行资源瓶颈分析优化方法
基于资源瓶颈分析的优化方法论极其古老而且流行,古老和流行意味着其有一定的效果。笔者更愿意把基于资源瓶颈分析的优化方法论和基于局部命中率的优化方法论放在一起论述:资源空闲的系统未必能保证高效的性能,但资源紧张甚至不足的系统必然导致性能不佳。从这个角度考虑,由于瓶颈分析优化方法操作简单,容易发现问题,可以与局部命中率方法一样作为必要的辅助性优化方法论。资源瓶颈的分析虽然容易,但极其容易被误导,只有正确地认识资源的特性才可以发现资源瓶颈。在资源瓶颈的分析过程中,我们要把握以下几点。
每种资源都有其处理能力的上限,达到其处理能力上限后必然会导致其服务能力的下降,但接近其资源能力的上线未必会导致性能下降。只有达到资源瓶颈的上限后,才会成为所谓的瓶颈。
资源利用率只是衡量资源瓶颈的一个指标,但不是最重要的指标。100%的CPU利用率、100%的磁盘利用率并不意味着效率下降,有时候反而是业务高效运行的一定特征,比如ETL处理程序总是希望CPU被100%利用。
资源瓶颈可以相互交换,在一个I/O性能低下、内存资源充足的系统中,可以通过高内存和高CPU消耗来进行交换。一个网络带宽有限的系统可以通过压缩传输提高CPU利用率来进行交换。
资源使用过度是业务系统性能不佳的最后传导因素,是其他相关因子导致资源过度应用,而资源过度应用导致资源提供性能不佳。瓶颈分析需要明确主要的资源影响因子,也就是会导致资源应用的相关操作。
资源供给作为设备的基本属性,同样遵循吞吐量和响应时间关系曲线,具体参见图2-4。为了有效利用资源瓶颈分析,必须掌握每种资源的性能突变点,也许有些资源会存在多个不同的突变点。
资源的供给是均匀的,但是资源的使用往往不均匀。比如总是出现某几个CPU很忙,其他CPU基本空闲;某块磁盘特别忙碌,其他磁盘基本没有工作。在资源瓶颈优化中,资源均衡分布使用是常用的资源瓶颈优化方式。
在本书中,为了更好地发挥资源瓶颈分析的作用,把lock、buffer lock、latch和mutex等并发性控制机制纳入了资源的范畴,使性能必然与某个资源供给不佳具有一定的关系,使简单的资源瓶颈分析在Oracle业务性能优化中发挥更好的作用。

时间: 2024-11-01 18:04:19

《Oracle数据库性能优化方法论和最佳实践》——2.5 基于资源瓶颈分析的优化方法论的相关文章

《Oracle数据库性能优化方法论和最佳实践》——第2章 Oracle性能优化方法论的发展 2.1 基于局部命中率分析的优化方法论

第2章 Oracle性能优化方法论的发展 Oracle数据库在开发和使用过程中对数据库的性能优化极为重视,几乎在每个版本的更新中都会对可优化的数据库做出改善.不仅如此,Oracle数据库还会使用优化方法来指导性能优化,会不断推出新的性能优化方法论,并依据优化方法论持续完善其可观察的性能优化体系.从Oracle 6到现在的Oracle 12c,经历了Oracle 7.Oracle 8.Oracle 8i.Oracle 9i & R2.Oracle 10gR1 & R2.Oracle 11gR

《Oracle数据库性能优化方法论和最佳实践》——2.3 响应时间分析优化方法论

2.3 响应时间分析优化方法论 2.3.1 RTA方法论简述 响应时间分析(Response Time Analyze,RTA)的性能优化方法论是基于OWI的性能优化方法论发展起来的,标志着Oracle开始认识到Oracle性能优化其实就是一个流程改善的过程(减少响应时间),首次在性能优化上跳出了IT设备的观点,从业务流程优化的角度来考虑问题.在任何场合下,流程改善或者性能优化最为适当的方法就是RTA. Oracle从9.2版本开始提供RTA,在Oracle 10g中进行了进一步的完善.RTA优

《Oracle数据库性能优化方法论和最佳实践》——1.7 Oracle性能优化的神话和误区

1.7 Oracle性能优化的神话和误区 Oracle性能优化工作是Oracle数据库科学最为神秘莫测的领域,自然也就会流传着各种传言和八卦.本书最主要的目的就是真正使Oracle性能优化成为一门严谨的科学,使任何阅读并且理解本书内容的读者可以比较简单地完成Oracle性能优化工作,使自己在其他人面前成为"巫师"或"神秘的对象".1.7.1 艺术和科学 从百度.Google等网站搜索"性能优化艺术",会出现大量的条目,部分Oracle性能优化的图

《Oracle数据库性能优化方法论和最佳实践》——第1章 Oracle性能优化漫谈 1.1 从生活场景漫谈性能优化

第1章Oracle性能优化漫谈 1.1 从生活场景漫谈性能优化 Oracle数据库性能优化一直是一个让人既胆怯又兴奋的话题,在初级DBA眼里,这是一个神秘的领域,即使是资深的Oracle DBA,也可能无法描述清楚性能优化究竟要做什么,应达成什么目标.那么性能优化究竟是做什么的呢?简而言之,性能优化就是让我们的工作速度变快,快到让我们满意为止.自然,又有读者会问了,我们的工作是什么呢?什么程度才算快,是否可以衡量?看,头疼的问题又来了.1.1.1 从一个真实病例说起 下面是本人的真实经历,也许很

对Oracle数据库性能优化技术的研究

大型关系数据库Oracle已经广泛应用于各行各业,如政府.交通.公安.电信.金融.能源等部门,并已逐渐成为企业信息化建设的重要数据库平台,但随着 Oracle 数据库规模的扩大,数据库用户人数的增加,数据库性能问题越来越突出,因此,有必要对 Oracle 数据库性能进行调整与优化, 使之在满足需求条件下,系统性能达到最佳和系统开销最小. 1.性能优化目标 1.1 缩短响应时间 响应时间是指从用户提交SQL语句到数据库返回结果集的第一行数据所需要的时间,缩短响应时间可以通过减小系统服务时间或用户等

Oracle数据库性能优化技术开发者网络Oracle_oracle

正在看的ORACLE教程是:Oracle数据库性能优化技术开发者网络Oracle.介绍:细处着手,巧处用功.高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些.电脑小技巧收集最新奇招高招,让你轻松踏上高手之路.  摘要: Oracle数据库是当前应用最广泛的大型数据库之一,而其性优化直接关系到系统的运行效率.本文以数据库性能优化的基本原则为出发点,阐述了在数据库设计阶段如何避免竞争和如何优化数据访问,在数据库运行阶段如何从操作系统和数据库实例级别上调整内存和I/O来达到数据库性能优化的各种技

【性能优化】ORACLE数据库性能优化概述

   为了保证ORACLE数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略.优化策略一般包括服务器操作系统参数调整.ORACLE数据库参数调整.网络性能调整.应用程序SQL语句分析及设计等几个方面,其中应用程序的分析与设计是在信 分析评价ORACLE数据库性能主要有数据库吞吐量.数据库用户响应时间两项指标.数据库吞吐量是指单位时间内数据库完成的SQL语句数目:数据库用户响应时间是指用户从提交SQL语句开始到获得结果的那一段时间.数据库用户响应时间又可以分为系统服务时间和

ORACLE数据库性能优化

实际上,为了保证ORACLE数据库运行在最佳的性能状态下,在http://www.aliyun.com/zixun/aggregation/32730.html">信息系统开发之前就应该考虑数据库的优化策略.优化策略一般包括服务器操作系统参数调整.ORACLE数据库参数调整.网络性能调整.应用程序 SQL语句分析及设计等几个方面,其中应用程序的分析与设计是在信息系统开发之前完成的. 分析评价ORACLE数据库性能主要有数据库吞吐量.数据库用户响应时间两项指标.数据库吞吐量是指单位时间内数据

oracle数据库性能优化方案精髓整理收集回顾

oracle数据库性能优化总体法则: 一.减少数据访问(减少硬盘房访问次数) 二.返回更少的数据(减少网络传输或磁盘访问) 三.减少交互次数(减少网络传输) 四.减少服务器开销(减少cpu及内存开销) 五.利用更多的资源(增加资源) ===================具体说明================= 一.减少数据访问(减少硬盘房访问次数) 1.减少数据访问 1.1.创建并使用正确的索引 索引会大大增加DML(增删改)的开销[合理的索引会大大提高效率100倍.1000倍,但不合理的索