job处理缓慢的性能问题排查与分析(r4笔记第18天)
昨天开发的同事找到我说,生产有个job处理数据的速度很慢,想让我帮忙看看是怎么回事,最近碰到这种问题相对比较多了,但是问题的原因也是五花八门。我还是大体找他们了解了下情况,说有一个Job是处理文件传输的,但是从目前的运行情况来看,处理速度很慢,基本没什么进展,我向他们确认这几天是否有数据变更的操作,他们说没有。得到这个确认查看问题的方向就有明显的不同,我还是照例查看了一下数据库负载,锁情况。但是么有发现什么信息。从数据库的负载来看,负载倒不高。
Snap Id | Snap Time | Sessions | Cursors/Session | |
---|---|---|---|---|
Begin Snap: | 17844 | 16-Jan-15 12:00:37 | 303 | 4.2 |
End Snap: | 17845 | 16-Jan-15 13:00:40 | 303 | 4.4 |
Elapsed: | 60.04 (mins) | |||
DB Time: | 119.10 (mins) |
Load Profile
Per Second | Per Transaction | Per Exec | Per Call | |
---|---|---|---|---|
DB Time(s): | 2.0 | 0.1 | 0.00 | 0.00 |
DB CPU(s): | 1.2 | 0.1 | 0.00 | 0.00 |
Redo size: | 1,222,354.8 | 56,665.6 | ||
Logical reads: | 54,092.4 | 2,507.6 | ||
Block changes: | 4,395.0 | 203.7 | ||
Physical reads: | 5,172.7 | 239.8 | ||
Physical writes: | 273.2 | 12.7 | ||
User calls: | 4,952.3 | 229.6 | ||
Parses: | 12.9 | 0.6 | ||
Hard parses: | 1.1 | 0.1 | ||
W/A MB processed: | 1.0 | 0.1 | ||
Logons: | 0.1 | 0.0 | ||
Executes: | 3,000.2 | 139.1 | ||
Rollbacks: | 0.0 | 0.0 | ||
Transactions: | 21.6 |
接下来看看等待事件,还是没有发发现特殊之处。
Top 5 Timed Foreground Events
Event | Waits | Time(s) | Avg wait (ms) | % DB time | Wait Class |
---|---|---|---|---|---|
DB CPU | 4,204 | 58.83 | |||
db file sequential read | 1,539,592 | 3,003 | 2 | 42.03 | User I/O |
log file sync | 79,884 | 164 | 2 | 2.30 | Commit |
direct path read | 14,973 | 68 | 5 | 0.95 | User I/O |
control file sequential read | 43,790 | 18 | 0 | 0.25 | System I/O |
从时间模型的情况来看,资源消耗还在在I/O上。
Statistic Name | Time (s) | % of DB Time |
---|---|---|
sql execute elapsed time | 6,440.43 | 90.12 |
DB CPU | 4,204.39 | 58.83 |
RMAN cpu time (backup/restore) | 88.32 | 1.24 |
这个时候和开发做一个简短的沟通,最起码得明确一些信息,要不大海捞针的查问题还是针对性不强,他们说Job处理速度慢,是哪个job呢,他们反馈说是MF1ppMD的job我从Sql Order by Elapsed time中查得MFppMD的相关top sql有几个,但是这几个语句执行时间都很短,都在0.01秒以内,性能算是不错的了。
Executions |
%Total |
%IO |
SQL Module |
/* */ select count (1) from RP... |
||||
775.20 |
1,671,968 |
0.00 |
10.85 |
23.36 |
79.06 |
gqy0gxb05ycg4 |
pm1EnvelopeMT@ccbdbpr2 (TNS V1-V3) |
select L9_SPLIT_PERIOD into :b... |
717.11 |
14,042 |
0.05 |
10.03 |
99.84 |
0.00 |
b91t3s9kz9fg8 |
pm1EnvelopeMT@ccbdbpr2 (TNS V1-V3) |
/* */ SELECT SUBSCRIBER_ID, EF... |
394.40 |
1,167,196 |
0.00 |
5.52 |
39.54 |
63.55 |
dm1d93bw2jdzc |
MF1ppMD@ccbdbpr1 (TNS V1-V3) |
INSERT INTO RATED_EVENT (L3_NE... |
236.40 |
1 |
236.40 |
3.31 |
81.22 |
9.47 |
477uum1qjcpqh |
oracle@ccbstbpr2 (TNS V1-V3) |
SELECT "A1"."TABLE_ISSUE_CODE"... |
198.10 |
1 |
198.10 |
2.77 |
79.23 |
10.20 |
4uddwupn9fw9b |
TOAD 9.6.0.27 |
/* */ SELECT SUBSCRIBER_ID, DY... |
136.72 |
1,166,948 |
0.00 |
1.91 |
34.69 |
67.32 |
7p5kmytfrygy2 |
MF1ppMD@ccbdbpr1 (TNS V1-V3) |
/* */ Update RPR1_SUBS_RERATE ... |
80.38 |
196,631 |
0.00 |
1.12 |
22.43 |
79.87 |
7x26ag6bsacb3 |
pm1EnvelopeMT@ccbdbpr2 (TNS V1-V3) |
insert into MF1_DUPCHECK_KEYS ... |
从系统优化的角度来说,ppMD的性能问题还是比较奇怪的。继续查看其它的指标类型,一边注意ppMD相关的job,一边留意是否是其它的原因导致的。当我看到Sql Order by Executions的时候。注意到一个奇怪的地方,执行频率最高的正是ppMD这个job
Rows Processed |
Elapsed Time (s) |
%IO |
SQL Module |
<span color:white;"="" >SQL Text |
||||
2,333,806 |
0 |
0.00 |
43.03 |
106.28 |
0.00 |
a69bnysapnrt5 |
MF1ppMD@ccbdbpr1 (TNS V1-V3) |
select ROWID , PRIM_RESOURCE_T... |
1,671,968 |
1,664,009 |
1.00 |
775.20 |
23.36 |
79.06 |
gqy0gxb05ycg4 |
pm1EnvelopeMT@ccbdbpr2 (TNS V1-V3) |
/* */ SELECT CYCLE_CODE, CYCLE... |
1,167,196 |
1,166,977 |
1.00 |
394.40 |
39.54 |
63.55 |
dm1d93bw2jdzc |
MF1ppMD@ccbdbpr1 (TNS V1-V3) |
select sk.rowid , sk.subscribe... |
但是仔细查看会发现一个奇怪的现象, Rows Processed却是0.这是一个比较特殊的情况,这个参数代表的意思是SQL在快照时间内累计执行所处理的总行数。代表0说明执行了几百万次,但是没有任何数据处理,相当于空跑。来看看执行的sql语句是什么。
select ROWID,
PRIM_RESOURCE_TP,
PRIM_RESOURCE_VAL,
TO_CHAR(EFFECTIVE_DATE, 'YYYYMMDDHH24MISS'),
TO_CHAR(EXPIRATION_DATE, 'YYYYMMDDHH24MISS'),
TO_CHAR(SYS_CREATION_DATE, 'YYYYMMDDHH24MISS'),
TO_CHAR(SYS_UPDATE_DATE, 'YYYYMMDDHH24MISS'),
OPERATOR_ID,
APPLICATION_ID,
DL_SERVICE_CODE,
DL_UPDATE_STAMP,
FUTURE_1,
FUTURE_2,
FUTURE_3
into :b0 :b1,
:b2 :b3,
:b4 :b5,
:b6 :b7,
:b8 :b9,
:b10 :b11,
:b12 :b13,
:b14 :b15,
:b16 :b17,
:b18 :b19,
:b20 :b21,
:b22 :b23,
:b24 :b25,
:b26 :b27
from MI9_PAID_SUBSCR
where (((PRIM_RESOURCE_TP = :b2 and PRIM_RESOURCE_VAL = :b4) and
EFFECTIVE_DATE <= TO_DATE(:b6, 'YYYYMMDDHH24MISS')) and
(EXPIRATION_DATE is null or
EXPIRATION_DATE > TO_DATE(:b6, 'YYYYMMDDHH24MISS')))
这是一个很简单的查询,一看这个表,我就恍然大悟了,这个表是在这两天才做的变更,在最新的需求中需要创建这个表,从目前的需求来看,这个表需要同步一些数据,但是数据的同步机制还没有达成共识,所以最后临时决定先把这个表创建好,让job在校验的时候不出错,但是表里面没有数据,暂时先按照dummy表来处理。但是在升级中没有包含这个变更,只是提供了临时的补丁做了修复。
job处理缓慢的性能问题排查与分析(r4笔记第18天)相关推荐
- mysql 性能查看_MySQL查询性能问题排查
Mysql数据库的性能问题排查是十分复杂的,具体方法视场景而定,这里只做大致思路分析. 1. 整体考虑导致查询性能低下的各种因素 导致SQL查询变慢的原因是多元化的,在遇到问题时首先要有一个全方位的思 ...
- Redis性能问题排查解决手册(值得收藏)
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:今天给大家推荐 6 个 Spring Boot 项目,拿来就可以赚钱! 个人原创100W+访问量博客:点击前往, ...
- 结合“性能监视器” 排查、处理性能瓶颈导致应用吞吐率等指标上不去的问题...
双11备战前夕,总绕不过性能压测环节,TPS 一直上不去 / 不达标,除了代码上的问题外,服务器环境.配置.网络.磁盘.CPU 亦是导致性能瓶颈的重要一环,本文旨在分享最近项目性能压测过程中的排查经验 ...
- Redis性能问题排查解决手册(七)
阅读目录: 性能相关的数据指标 内存使用率used_memory 命令处理总数total_commands_processed 延迟时间 内存碎片率 回收key 总结 性能相关的数据指标 通过Red ...
- SQL Server 2008性能故障排查(二)——CPU
原文: SQL Server 2008性能故障排查(二)--CPU 承接上一篇:SQL Server 2008性能故障排查(一)--概论 说明一下,CSDN的博客编辑非常不人性化,我在word里面都排 ...
- Redis——性能问题排查
对于开发者来说,Redis是个速度非常快的key-value内存数据库,并提供了方便的API接口.为了最好最优的使用Redis,需要理解哪些因素能影响到Redis性能,哪些数据指标能帮助我们避免性能陷 ...
- 技能篇:linux服务性能问题排查及jvm调优思路
只要业务逻辑代码写正确,处理好业务状态在多线程的并发问题,很少会有调优方面的需求.最多就是在性能监控平台发现某些接口的调用耗时偏高,然后再发现某一SQL或第三方接口执行超时之类的.如果你是负责中间件或 ...
- 从几百个生产环境总结出的Redis性能问题排查解决手册(值得收藏)
点击上方蓝字,关注我们 阅读目录: 性能相关的数据指标 内存使用率used_memory 命令处理总数total_commands_processed 延迟时间 内存碎片率 回收key 总结 性能相关 ...
- oracle性能优化之awr分析
oracle性能优化之awr分析 作者:bingjava 最近某证券公司系统在业务期间系统运行缓慢,初步排查怀疑是数据库存在性能问题,因此导出了oracle的awr报告进行分析,在此进行记录. 导致系 ...
最新文章
- 谷歌CEO称公司预计每月收购一家小公司
- HDU2642(二维的树状数组)
- [html] 你知道什么是粘性布局吗?
- 浅谈 JavaScript、ECMAScript (ES5、ES6)是什么、相互关系
- 800乘600的分辨率_600元能买到啥配置的手机?
- 基于特定实体的文本情感分类总结(PART II)
- android listview 获取viewholder,Android ViewHolder 的基本使用
- cad插入块_CAD中块插入点定义错了,插入位置不对怎么办?
- ubuntu查看端口
- markdown下载及基本语法
- 数字排列问题(全排例)
- gcc编译-m32、-mx32有什么区别
- 各大厂800道Java后端经典面试题合集
- 光电效应与光子|走进量子力学(3)
- InterSystems IRIS数据平台:数据接收速度测试
- 框架流程图绘制工具OmniGraffle 7 for Mac
- CSS选择器大全包含nth-child和nth-of-type的区别
- [Python从零到壹] 三十九.图像处理基础篇之图像几何变换(镜像仿射透视)
- 浏览器是指在用户计算机,2016年计算机二级office模拟试卷及答案
- 继电器开关阿里云IOT上云设置操作