oracle数据库CPU过高问题定位、分析(总结)
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,一、为ASH、AWR、ADDM、SPA分别开启会话,并使用会话跟踪:--ASHalter session set events '10046 trace name context forever,le
千家信息网最后更新 2024年11月24日oracle数据库CPU过高问题定位、分析(总结)
一、为ASH、AWR、ADDM、SPA分别开启会话,并使用会话跟踪:
--ASH
alter session set events '10046 trace name context forever,level 12';Session altered.SQL> @ashrptSQL> alter session set events '10046 trace name context off';
--AWR
SQL> alter session set events '10046 trace name context forever,level 12';Session altered.SQL> @awrrptSQL> alter session set events '10046 trace name context off';
--ADDM
SQL> alter session set events '10046 trace name context forever,level 12';Session altered.SQL> var task_name varchar2(30);SQL> exec DBMS_ADDM.ANALYZE_DB(:task_name,57,58);PL/SQL procedure successfully completed.SQL> print :task_nameTASK_NAME--------------------------------------------------------------------------------TASK_366SQL> set long 1000000 pagesize 0;SQL> select dbms_addm.get_report('TASK_366') from dual;SQL> alter session set events '10046 trace name context off';
--SPA
SQL> alter session set events '10046 trace name context forever,level 12';SQL> begin dbms_sqltune.create_sqlset( sqlset_name=>'cpu_2', description => 'High cpu read tuning set'); end; / 2 3 4 5 6 PL/SQL procedure successfully completed.SQL> declare base_cur dbms_sqltune.sqlset_cursor; begin open base_cur for select value(x) from table(DBMS_SQLTUNE.select_workload_repository(57,58,NULL,NULL,'cpu_time',NULL,NULL,NULL,10)) x; -- dbms_sqltune.load_sqlset(sqlset_name=>'cpu_2',populate_ 2 3 4 5 6 7 cursor => base_cur); end; / 8 9 PL/SQL procedure successfully completed.SQL> variable sts_task VARCHAR2(64);SQL> EXEC :sts_task :=DBMS_SQLPA.CREATE_ANALYSIS_TASK(sqlset_name=>'cpu_2',order_by=>'cpu_time',description=>'process workload ordered by cpu_time');PL/SQL procedure successfully completed.SQL> EXEC DBMS_SQLPA.execute_analysis_task(task_name=>:sts_task,execution_type=>'CONVERT SQLSET',execution_params=>dbms_advisor.arglist('TIME_LIMIT','1800'));PL/SQL procedure successfully completed.SQL> set long 1000000 pagesize 0;SQL> select DBMS_SQLPA.report_analysis_task(:sts_task,'HTML','ALL','ALL') from dual;SQL> alter session set events '10046 trace name context off';
二、通过tkprof解析跟踪文件
tkprof orcl_ora_21955.trc /home/oracle/ash.txt
tkprof orcl_ora_22077.trc /home/oracle/awr.txt
tkprof orcl_ora_22087.trc /home/oracle/addm.txt
tkprof orcl_ora_22092.trc /home/oracle/spa.txt
三、查看解析结果
--ASH
call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------Parse 1041 0.39 0.39 0 252 0 0Execute 1165 2.42 2.43 0 3352 7 12Fetch 2426 0.09 0.07 81 4688 126 1848------- ------ -------- ---------- ---------- ---------- ---------- ----------total 4632 2.90 2.90 81 8292 133 1860
--AWR
call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------Parse 1386 0.19 0.19 0 14 0 0Execute 3630 0.81 0.81 1 1213 8 1Fetch 9177 0.30 0.41 195 118457 3421 7597------- ------ -------- ---------- ---------- ---------- ---------- ----------total 14193 1.31 1.42 196 119684 3429 7598
--ADDM
call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------Parse 555 0.03 0.03 0 74 0 0Execute 1915 0.16 0.16 5 2294 322 91Fetch 4988 0.04 0.03 0 10032 3 4861------- ------ -------- ---------- ---------- ---------- ---------- ----------total 7458 0.24 0.23 5 12400 325 4952
--SPA
call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------Parse 1311 0.11 0.12 0 507 0 0Execute 4131 0.41 0.51 15 7701 850 232Fetch 10741 0.13 0.16 16 32068 4 10646------- ------ -------- ---------- ---------- ---------- ---------- ----------total 16183 0.66 0.80 31 40276 854 10878
四、分析结果
通过上述结果可以发现,
query(buffer)的使用消耗优先排列为:ash=>addm=>spa=>awr
disk(磁盘)的使用消耗优先排列为:addm=>ash=>spa=>addm
cpu的使用消耗优先排列为:addm=>spa=>awr=>ash
生产环境定位问题时,可以将上述结果作为参考,避免CPU过高时仍使用cpu消耗过大的工具;【实验中ash的取时范围为1小时,生产环境中往往使用ash皆是查看几分钟的区间,因此ash的性能消耗是最低的】
五、关于性能视图与会话跟踪,性能消耗相对更低,但可阅读性相比上述工具略差,可根据个人习惯进行选择
消耗
结果
性能
跟踪
工具
环境
生产
问题
分析
定位
最低
个人
区间
小时
文件
磁盘
视图
时范
参考
实验
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术成本的账务处理
饥荒专用服务器搭建
九一互联网科技有限公司
一家软件开发公司需求来源
服务器断电后一直叫
国家防诈中心服务器
sw如何查看螺纹规格数据库
不使用代理服务器有问题吗
国家社科规划办数据库
国家网络安全规划 概念股
云点播连接服务器失败
数据库如何检测信息
数据库防篡改技术有哪些
js绑定ashx数据库
中国服务器市场规模
附加数据库对服务器失败
泉州易捷软件开发有限公司
山东税务服务器异常怎么回事
维护网络安全要严打严管严控
广州学习软件开发学校
高速服务器有搭电服务吗
安徽淮北网络技术公司招聘
软件开发师是什么行业
山东网关服务器虚拟主机
编程软件开发大全
徐州运营软件开发销售价格
今天同花顺服务器异常
中职学校网络安全应急预案
mysql数据库关键技术
第一次对数据库进行备份必须是