性能问题往往分为两大类:影响了整个系统的问题和只影响了部分系统的问题。影响了部分系统的情况,例如某一特定应用或 SQL 语句。我们在研究的过程中发现-种类型的问题可能转化为另外一种类型的问题,或者相反。一个常见的情况是:造成整个系统性能降低的只是一个单独的语句,或者是整个系统的问题只是在一个特定的区域被发现。
我们在优化实践中注意到,找到性能降低原因的方法就是从高层入手并逐次向底层推进来排查定位。不论对于整个系统或者局部的问题,这个定位过程都可以使用本书提供的PAT决策树进行。为了方便读者使用这一方法,我们将生产环境中遇到的性能问题进行了归纳整理。如图1-2所示,我们把引起性能问题的原因归结为下面6种类型:
l 磁盘瓶颈:磁盘I/O是数据库性能的瓶颈。
l CPU瓶颈:CPU是数据库性能的瓶颈。
l 内存瓶颈:内存是数据库性能的瓶颈。
l 网络瓶颈:客户端和数据库服务器之间,或者数据库DPF节点之间存在网络瓶颈,从而导致了数据库性能变慢。
l “懒惰系统”:数据库运行变慢,但没有磁盘、CPU、内存或网络瓶颈。
l 性能上限(高级技术优化):数据库性能已经达到了硬件上限,软件也没有继续优化的空间,这时候可以考虑使用数据库高级技术。在本书的第四部分中,会给读者介绍如何使用DB2 pureScale海量事务处理技术 和solidDB高速缓存技术来提升数据库系统性能。
在制定性能优化步骤之前,读者首先需要考虑下面的建议:
l 有备而来,去了解系统一切正常的情况下性能怎么样。搜集运行监视信息来跟踪一段时间内系统行为的变化。
l 了解整个场景,不要局限于你从 DB2 上看到的,也要搜集并分析来自于操作系统、存储、应用程序甚至来自用户的数据。了解系统本身将有助于你解释监控数据。
l 只调整能解释你看到的症状的参数,如果连发动机都无法启动就不要更换轮胎。不要试图通过降低 CPU 来解决磁盘的瓶颈。
l 一次只改一个参数,在更改其它参数之前先观察效果。
按照上面的原则,下图列出了性能优化的执行步骤。首先,从业务角度识别结果,从业务角度确定问题,设定每个问题的优先级,设定每个问题的优化目标;随后,从系统角度确定原因:时间花在何处?时间是如何被消耗的?来找到时间耗费的原因;再次,使用PAT方法学来解决问题;最后对性能进行验证。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25714482/viewspace-722396/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25714482/viewspace-722396/