DB2 High CPU Usage

前提:

实例级快照开关都打开:

思路:

1. 判断CPU使用率高的进程是否是DB2进程

vmstat 1 5 #关注sy,us列用量是否高

iostat  #关注%user列是否高

ps -elf | sort -k 5 -rn | more #根据memory用量排序

2. 找到占用高CPU时间的DB2代理进程/线程

db2pd -edus -interval=3 #查看USR列高的向,记下EDU ID

db2pd -eve > db2pd_eve.out #结合上面EDU ID查找对应的SQL语句

db2pd -latches

db2pd -stack all

3. 分析这些DB2进程正在执行的SQL

db2pd

db2 get snapshot for applications on db2test

通过mon_get_pkg_cache_stmt找到占用CPU较多的动态sql语句

db2 "select TOTAL_CPU_TIME/NUM_EXEC_WITH_METRICS as AVG_CPU_TIME, NUM_EXEC_WITH_METRICS, substr(STMT_TEXT,1,100) as STMT_TEXT from table( mon_get_pkg_cache_stmt (null, null,null,null)) as T where T.NUM_EXEC_WITH_METRICS <> 0 order by AVG_CPU_TIME DESC"

查每个edu占用时间

db2pd -edus interval=120根据EDU ID结合db2pd -eve找到其执行的sql语句

db2 get snapshot for application

top -Hp 12211 (12211为db2sys进程号)

ps -Lp 12211 -o pid,ppid,pcpu,pmem,lwp

4. 计算这些SQL的平均执行时间、读取的行数、CPU的执行时间、排序行数等,分析SQL访问计划

5. SQL优化(DBA在数据库物理与逻辑设计上调优、联系应用调整SQL

=============待更新=======================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值