DB2 最佳实践 性能调优和问题诊断最佳实践_第1页
DB2 最佳实践 性能调优和问题诊断最佳实践_第2页
DB2 最佳实践 性能调优和问题诊断最佳实践_第3页
DB2 最佳实践 性能调优和问题诊断最佳实践_第4页
DB2 最佳实践 性能调优和问题诊断最佳实践_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DB2最佳实践:性能调优和问题诊断的最佳实践本系列介绍DB2系统性能的最佳方法,分为两部分。第一部分首先介绍了如何从硬件和软件配置方面保证良好的性能,然后讨论了可以帮助我们了解系统在各种运行和故障诊断条件下的性能的监控方法。在第二部分中,我们将介绍如何循序渐进地处理性能问题。总结即使是最精心配置的系统最终也会发现它仍然需要一定的性能调整,并且我们在此时收集的运行监控数据在将来会非常方便地收集。对于我们来说,保持一个系统化的调谐和故障诊断方法是非常重要的。当问题出现时,为了解决问题,很容易随意进行调整。然而,当我们这样做时,事实上,定位问题的可能性非常低,甚至使问题变得更糟。性能调整的一些基本原

2、则:1.准备好了解系统在正常情况下的表现。收集运行监控信息以跟踪系统行为随时间的变化。2.了解整个场景,不仅仅是您从DB2中看到的,还要收集和分析来自操作系统、存储、应用程序甚至用户的数据。了解系统本身将有助于您解读监控数据。3.仅调整能够解释您看到的症状的参数。如果发动机不能起动,不要更换轮胎。不要试图通过减少CPU来解决磁盘瓶颈。4.一次只更改一个参数,并在更改其他参数之前观察效果。您可能遇到的问题类型性能问题通常分为两类:影响整个系统的问题和只影响系统一部分的问题。例如,对于一个特定的应用程序或SQL语句,在研究过程中一种类型的问题可能转化为另一种类型的问题,反之亦然。例如,整个系统的性

3、能降级可能是由一条语句引起的,或者整个系统的问题可能只在特定的区域中发现。让我们从整个系统的问题开始。我们发现的性能下降的所有原因都是从顶部开始的,并逐渐完善了我们的诊断。这种“决策树”策略可以帮助我们尽早消除无法解释我们所看到的症状的因素,并且适用于整个系统或更多的局部问题。我们将瓶颈分为以下四种常见类型:1.唱片2.中央处理器3.记忆4.“懒惰系统”在开始DB2调查之前,首先考虑一些准备问题通常是有帮助的,例如:1.是否有任何性能下降,这与什么有关?我们的“基准”是什么?2.系统的性能是否会随着时间的推移而下降?它是否低于不同的系统或应用程序?这个问题可能会导致性能下降。数据量增加了吗?所

4、有硬件工作正常吗?3.性能下降是什么时候发生的?性能降级可能每周在另一个任务运行之前、期间或之后发生。即使此任务与数据库没有直接关系,它也可能由于消耗网络或CPU资源而影响数据库性能。4.业绩下降之间的关系有什么变化吗?通常,会添加新的硬件,或者更改应用程序,加载大量数据,或者有更多用户访问系统。5.当数据库专家与应用程序和架构专家一起工作时,这些问题通常是综合分析方法中非常重要的一部分。DB2服务器几乎总是硬件、其他中间件和应用程序的复杂环境的一部分,因此解决问题可能需要许多领域的技能。回到顶部磁盘瓶颈系统瓶颈磁盘瓶颈?磁盘瓶颈的基本症状是:vmstat或iostat结果中的高输入/输出延迟

5、。这表明系统将花费很短的时间等待磁盘输入/输出来完成请求。20%或25%的等待时间很少。如果处理器时间很短,那么高的输入/输出延迟就是瓶颈的一个很好的迹象。根据iostat或perfmon,磁盘占用率高达80%。从vmstat输出看,CPU利用率低(25%-50%)也许最终我们可能需要添加磁盘,但是现在我们将检查是否可以通过调整DB2系统来消除这个瓶颈。如果存在磁盘瓶颈,系统管理员可以帮助映射繁忙设备映像的文件系统路径。从这里,您可以决定DB2如何使用这些受影响的路径:瓶颈是表空间容器吗?这取决于在sysibmadm.snapcontainer中查询TBSP_NAME、TBSP_ID和CONT

6、AINER_NAME的结果,以查看导致瓶颈的路径是否在CONTAINER_NAME结果中。瓶颈是事务日志路径吗?这取决于检查数据库配置参数的结果,以查看导致瓶颈的路径是否是“日志文件路径”作为诊断日志路径?这取决于检查数据库管理配置参数的结果,以查看导致瓶颈的路径是否是DIAG路径。我们将分别考虑这些情况。系统瓶颈容器磁盘瓶颈热数据容器热表?为了判断是什么导致容器成为瓶颈,我们需要判断哪些表存储在这个表空间和那个表空间中,哪些表是最活跃的。1.要确定该表空间中有哪个表,您需要查询syscat.tables,并将TBSPACEID与snapcontainer匹配。上述待定_标识。2.为了找出哪些

7、表最活跃,您需要查询sysibmadm.snaptab,并为繁忙容器上的表选择ROW_READ和ROW _ WRITTEN。看看那些比其他桌子更活跃的桌子。请注意,这需要打开实例级表监控开关系统瓶颈容器磁盘瓶颈热数据容器热表动态?为了进一步深入,我们需要找出是什么导致了这个表中的高水平活动。它是由动态SQL语句引起的高度活跃吗?通过。在查询动态sql快照时,我们可以找到我们感兴趣的涉及该表的语句:从sysibmadm . snap dyn _ SQL where translate(cast)中选择(substr(stmt _ text,1,32672)as varchar(32672)类似于

8、“%”订单人列返回可以包括行读取和写入、缓冲池活动、执行时间、CPU时间等。我们可以在列上使用ORDER BY子句,例如ROWS_READ、ROWS _ WRITTEN和NUM_EXECUTIONS,来集中那些对表有最大影响的语句。请注意,我们假设此处的表名在SQL语句的前32672个字符中。虽然这个假设并不完美,但在大多数情况下是正确的,并且需要使用LIKE。从sysibmadm . snap dyn _ SQL where translate(cast)中选择(substr(stmt _ text,1,32672)作为varchar(32672)像“%”一样排序系统瓶颈容器磁盘瓶颈热数据容

9、器热表静态?它是由静态SQL语句引起的高活动性吗?这里我们需要使用系统目录表和db2pd来找出哪个写语句最活跃。查询syscat .语句并参考我们关心的表:选择PKGSCHEMA、PKGNAME、SECTNO、substr(TEXT,1,80)from syscat . statements where translate(cast(substr(text,1,32672)as varchar(32672)类似于“%”一旦我们有了包含我们感兴趣的表的静态SQL语句的包名和片段号,我们就可以使用db2pd-static来找出它们中哪些是高度活跃的。Db2pd-static的输出记录了从实例启动和

10、执行的每个静态SQL语句。语句NumRef计数器已经运行了多少次,RefCount计数器显示当前有多少DB2代理在运行该语句。监控db2pd中的每个呼叫记录-静态结果。NumRef值和RefCount值的快速上升通常超过2或3,通常表示这是一个高度活跃的语句:选择PKGSCHEMA、PKGNAME、SECTNO、substr(TEXT,1,80)from syscat . statements where translate(cast(substr(text,1,32672)as varchar(32672)类似于“%”系统瓶颈容器磁盘瓶颈热数据容器热表热SQL语句如果我们可以确定并得出结论,

11、一个或多个SQL语句会导致I/O瓶颈,那么我们需要确定是否可以优化该语句以减少下一步的I/O。此语句是否会启动意外的表扫描?这可以通过用db2exfmt检查查询计划并比较此问题语句的ROWS_READ和ROW_SELECTED来验证。由于在表扫描中使用过时的统计信息或索引问题,表扫描在临时查询中是不可避免的,但是导致过多输入/输出和瓶颈的重复查询仍应讨论。另一方面,如果受影响的表非常小,增加缓冲池大小可能足以减少输入/输出并消除瓶颈。有关详细信息,请参考此处关于查询优化和物理设计的最佳实践文章。在讨论索引容器之前,让我们先看看两个数据容器的磁盘瓶颈:1.我们需要一个表扫描来产生大量的磁盘读取,

12、并由预取器来完成。如果在预取期间有任何问题(参见下面的惰性系统),读入缓冲池操作将由代理本身完成,并且一次只读取一个页面。在这种情况下,将会有大量空闲的“惰性系统”或磁盘瓶颈(正如我们在这里讨论的)。因此,如果磁盘瓶颈是由表扫描造成的,但iostat中显示的读入大小比该表空间的预取大小小得多,则可能是由于预取不足造成的。2.通常,为了确保有足够的缓冲池页面可用于表空间的后续读取,页面清理将为此表空间产生稳定的写出流。但是,如果在清理调整页面时出现问题(参见惰性系统的瓶颈),代理将停止清理自己。这通常会导致页面清理的“突发”周期性的高活动写入(可能会导致磁盘瓶颈)与良好的性能交替出现。关于如何诊

13、断和解决这两个问题,在惰性系统的瓶颈部分有更多的信息。系统瓶颈容器磁盘瓶颈热索引容器热索引?容器中出现的瓶颈更可能是活动表而不是活动索引,但是一旦我们消除了活动表的原因,我们就应该调查问题是否是由活动索引引起的。因为我们没有索引快照可以使用,所以我们必须间接地发现问题。1.表空间中的索引读写活动吗?快照集的快照集识别码对应于上述快照集容器的快照集识别码。选择dbpartitionnum,tbsp_id,tbsp_name,池索引p读取,池索引写入sysibmadm.snaptbsp T其中T.tbsp_id=2.3.较大且不断增长的POOL_INDEX_P_READS或POOL_INDEX_W

14、RITES值表示此表空间有一个或多个“繁忙索引”。4.这个表空间中有哪些索引?查询syscat.tables和snapcontainer。上面的名称匹配索引空间。选择t.tabname,i.indname来自syscat.tables t,syscat.indexes i其中t.tabname=i.tabname和合并(t.index_tbspace,t . TB space)=15.这些索引中哪些是高度活跃的?如果我们检查的表空间中有多个索引,我们需要在索引级别检查活动级别。重复收集db2pdtcbstats索引db。“TCB索引统计”部分列出了所有活动的索引和每个活动的统计信息。“扫描”列显示对每个索引执行了多少次索引扫描。使用繁忙表空间中的索引列表查看索引的扫描总数。虽然增长非常快,但关键更新或内含更新(包括列值更新)是稳定的。系统瓶

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论