暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

CPU资源耗尽故障处理一例

IT那活儿 2020-07-15
1274

通过分析故障时间点数据库ASH、AWR报告、OSW日志信息:

1、 故障期间主机CPU资源高消耗、RUN队列持续增高


2、 故障时间段数据库状态分析


故障时间段数据库语句执行情况:




故障时间段数据库TopSQL信息:




TopSQL语句信息:


异常时间段fyh80hwbv7gna、5vsxm0s8ps2j6语句高并发情况:



同比8月29日TopSQL语句执行次数突增近10倍:



总结:本次故障原因为“fyh80hwbv7gna”、“5vsxm0s8ps2j6”语句异常高并发调用、导致数据库主机CPU资源高消耗,数据库服务响应时间延长。



解决方案:

本次解决方案分为两个方面:

1. 针对异常SQL语句进行执行性能优化;

优化分析:

异常期间fyh80hwbv7gna语句执行2300次,平时10次 "分析和优化:分页查询总条数,1.SE_XX系列表统计信息不对 se_pretask_info查询条件like全通配导致执行计划基数估算不准(实际小于10条,实际返回5000次,应该走NESTED LOOPS的走了HASH JOIN)。

优化建议:

收集SE_XX系列表统计信息并使用SQL PROFILE绑定,逻辑读436w 执行时间16s,高频运行会导致CPU使用满 ,同时存在大量分页语句汇总,未使用绑定变量。

优化效果:

fyh80hwbv7gna语句逻辑读:436w--->5800 执行时间:16s-->0.3s 效率提升50倍以上。

  gyk0u596xt7c7语句逻辑读:363w——>25000,执行时间:11s—》1.6s,效率提升6倍以上。 

2. 核查应用运行情况,确认异常调用根本原因。





文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论