没有合适的资源?快使用搜索试试~ 我知道了~
DB2系统临时表空间过大引发的性能问题-contracted.doc
需积分: 5 10 下载量 89 浏览量
2021-04-26
23:02:40
上传
评论
收藏 607KB DOC 举报
温馨提示
试读
12页
这是某银行 DB2 系统发生的一次真实案例,SQL 语句执行时间变长,最后发现“罪魁祸首”竟是 DB2 系统临时表空间过大。本文将介绍这个性能问题的分析处理过程,如何逐步定位问题根本原因,并提供了解决方法。这其中用到的一些方法和工具对读者分析性能问题有一定的参考意义。
资源详情
资源评论
资源推荐
DB2 系统临时表空间过大引发的性能问题
Date: June 8 2017
Type of Submission: Article
Title: DB2 系统临时表空间过大引发的性能问题
Subtitle:
Keywords: DB2 TEMPSPACE1,Latch,性能问题,Stack,db2trc suspend
Prefix: Error: Reference source not found
Given: Error: Reference source not found
Middle: Error: Reference source not found
Family: Error: Reference source not found
Suffix: Error: Reference source not found
Job Title: Error: Reference source not found
Email: Error: Reference source not found
Bio: 郝庆运,IBM 认证高级DBA,作为pure blue在IBM CDL DB2中国研发团队工作8年,对
IBM和DB2产品有深厚的感情,曾参与过DB2 多个版本的新功能开发和技术支持,对DB2有
较为深入的理解。目前在中国民生银行做DB2数据库运维工作。您可以通过 developerWorks
社区与<a href=https://www.ibm.com/developerworks/mydeveloperworks/profiles/user/
haoqingyun>郝庆运</a>进行交流。
Company: 中国民生银行科技开发部
Photo filename: Error: Reference source not found
Abstract: 这是某银行 DB2 系统发生的一次真实案例,SQL 语句执行时间变长,最后发现
“罪魁祸首”竟是 DB2 系统临时表空间过大。本文将介绍这个性能问题的分析处理过程,如何
逐步定位问题根本原因,并提供了解决方法。这其中用到的一些方法和工具对读者分析性能
问题有一定的参考意义。
这是某银行业务系统发生的一次真实案例,从某一天开始,业务人员陆续反映系统响应变慢,同时 DB2
数据库监控频繁捕捉到数据库 ACTIVE SESSION 数量达到 50 以上,登录 DB2 数据库服务器上发现多
个语句执行时间变长。这一切现象看起来是典型的性能问题,于是开始按部就班的检查 CPU,内存,
I/O,LOCK WAIT,缓冲池命中率,抓取执行时间长的语句并检查执行计划,一番努力之后没什么效果。
后来终于发现,一直默默无闻几乎无人关心的 DB2 系统临时表空间 TEMPSPACE1 居然有 10G 之大,
并且是性能下降的“罪魁祸首”。
本文将介绍这个性能问题的分析处理过程,解析 DB2 TEMPSPACE1 空间过大如何一层一层的影响查询
语句的性能,并提供了解决方法。这其中涉及到常用性能分析步骤,LATCH 分析方法,STACK 收集和
分析技巧,甚至如何用 db2trc 工具“暂停”DB2 实例等,对读者分析性能问题有一定的参考意义。
性能问题的初步确认
如本文开头提到的,业务人员陆续反映某业务系统响应变慢,同时数据库监控频繁捕捉到数据库
ACTIVE SESSION 数量达到 50 以上,如果说业务人员的凭感觉做出的反馈有可能有偏差,或者还会考
虑是否应用程序有问题,那么看到数据库 ACTIVE SESSION 数量高则是很有可能是数据库发生了问题,
作为运维 DBA 马上开始紧张起来。查看监控系统中 ACTIVE SESSION 数量历史曲线,之前 ACTIVE
SESSION 数量一直在 10 个以内,偶尔有达到 30 个的情况,这几天较为频繁的超过 30 个。
ACTIVE SESSION 数量即活动会话数是 DB2 数据库监控中一个重要的指标,可以从 db2top 中方便的看
到当前的 ACTIVE SESSION 数量(db2top -d <dbname>,然后输入交互指令‘d’),并且以 默认 2 秒
的间隔持续刷新,如图 1 所示。
图 1. db2top 查看 ACTIVE SESSION 数量
这个 ActSess 指标是指数据库当前正在执行的会话数,也就是正在执行的 application 数量,还可以通过
db2 LIST APPLICATIONS SHOW DETAIL 的结果进行统计获得。准确的说,正在处理 SQL 语句请求的
会话都计入 ACTIVE SESSION,而 SQL 语句处理过程从编译到执行完成这个过程会出现
Compiling,UOW Executing 等状态,如果有锁等待还会出现 Lock Waiting 状态。COMMIT 也是一个语
句,COMMIT 执行过程中可能看到 Commit Active 状态。如果启用了 WLM 的并发限制,正在排队等待
的会话处于 Queued 状态。以上这些状态的会话都计入 db2top 中的 ActSess 数量。应用程序在一个事
务(TRANSACTION)中执行完一条语句而下一条语句还没开始执行,这时 APPLICATION 的状态是
UOW Waiting,不计入 ACTIVE SESSION 数量。看到 ActSess 数量高,需要再看一下具体是哪些状态,
可以通过在 db2top 中输入交互指令‘l’(小写的 L)进入 SESSIONS 页面,本次的问题中活动会话都是
UOW Executing 状态。
一般的联机事务处理(OLTP)系统的 ACTIVE SESSION 数通常在 10 个以内,较为繁忙的系统可能达
到二三十个,如果更高就需要考虑进行系统扩容。当一个系统平时的 ACTIVE SESSION 数量只有几个,
突然频繁的达到几十个,那有两种可能,一是业务系统变忙,例如业务访问量激增;另一个种可能就是
出现了性能问题,SQL 语句执行时间变长。当然也有可能是两种情况的组合,即业务访问量激增导致某
种竞争,从而 SQL 语句执行时间变长。
基于对某银行业务系统的理解,并与业务系统负责人确认,可以肯定的是业务访问量没有增加。这样就
基本确定了是数据库出现性能问题,SQL 语句执行时间变长。
快速排除法
可以快速的排除数据库服务器资源问题,CPU利用率在正常范围内,操作系统内存使用量正常。根据
db2top结果(如图1)快速的判断数据库缓冲池命中率(HitRatio)正常,没有LOCK WAIT,从右下角
四个参数AvgPRdTime(Average Physical Read time),AvgDRdTime(Average Direct Read
Time), AvgPWrTime(Average Physical Write time)和AvgDWrTime(Average Direct Write time)
可以判断I/O正常。注意到Deadlocks为218,但这是一个累计值而且不会影响性能,还注意到有
SortOvf(Sort Overflow)为10,有点儿高但考虑到应用程序的SQL语句用了较多的排序,所以有一些
排序溢出应该不是主要问题。
另外,已经确认了是数据库自身的问题,就不需要考虑网络故障的可能性了。
抓取并分析执行时间长的 SQL 语句
接下来分析执行时间长的 SQL 语句。可以通过 db2top 来看缓存(PACKAGE CACHE)中的动态
SQL(在 db2top 的界面输入交互指令‘D’),还可以 在这个界面继续输入交互指令‘z’,在上方会出现提
示“Column number for descending sort:”,然后输入数字 4 回车,会根据 Avg ExecTime 进行排序,如
图 2 所示。
图 2. db2top 查看动态 SQL 执行时间
在图 2 中看到,前几条 SQL 语句的 Avg ExecTime 即平均执行时间最长的接近 4 秒,但是 Num
Execution 即执行次数都只有有限几次,这应该是由于应用程序中的 SQL 语句没有使用变量绑定方式而
且直接拼凑 SQL 语句,导致几乎每条 SQL 对 DB2 来说都是新的语句。尽管只看到执行几次的 SQL 的
平均执行时间,还是可以推测确定所有这种语句执行时间都比较长。
MON_CURRENT_SQL 管理视图
对于 ACTIVE SESSION 数量高的情况,可以用 MON_CURRENT_SQL 管理视图来查看当前正在执行
的 SQL 语句(包括动态 SQL 和静态 SQL),查询 语句如清单 1 所示,结果如图 3 所示(为了便于阅读,
图 3 中的结果中有一些字段没有显示)。
清单 1. 使用 MON_CURRENT_SQL 管理视图
db2 "SELECT COORD_MEMBER MEMBER,
剩余11页未读,继续阅读
haoqingyun
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0