首先,1、现场用户反映ERP操作超慢。
2、查看数据库服务器CPU使用情况
CPU User% Kern% Wait% Idle%
ALL 98.9 0.7 0.4 0.0
3、vmstat 1 3
kthr memory page faults cpu
----- ----------------------------------- ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
106 0 7302775 612682 0 0 0 0 0 0 3025 171014 10496 93 1 6 0
117 0 7302695 612762 0 0 0 0 0 0 3177 105729 16682 94 1 5 0
121 0 7302695 612762 0 0 0 0 0 0 2490 132521 28593 90 1 9 0
4、db2top中 UOW Executing 的app超多(总的app达到200多个,正在执行的80-90多个)
22356(*) 13.47% 11.46% 1.50% UOW Executing db2jcc_applicat 13 0
22388(*) 13.57% 12.15% 1.00% UOW Executing db2jcc_applicat 19 0
22547(*) 13.71% 10.91% 1.00% UOW Executing db2jcc_applicat 18 0
22482(*) 13.76% 10.81% 2.00% UOW Executing db2jcc_applicat 16 0
22509(*) 14.43% 12.52% 1.00% UOW Executing db2jcc_applicat 13 0
22581(*) 15.06% 14.05% 1.00% UOW Executing db2jcc_applicat 22 0
22257(*) 15.57% 13.67% 1.00% UOW Executing db2jcc_applicat 22 0
5、此时zabbix中 显示CPU
正常情况的CPU使用情况:
6、出问题时的数据库排序事件:
正常情况下的排序事件
出现此情况,业务非常卡 ,ERP几乎不能使用,只能force掉所有数据库app才能解决,但是这不是根本。最近几天连续出现这种情况,请问各位大婶 ,我该如何确定具体哪个业务造成的?或者哪个具体的SQL造成的?晚上没人动什么东西,肯定是现场业务人员操作ERP画面造成的吧?
请大神给出分析和查找思路,不胜感激!
sort是CPU杀手,应对措施两个:
1. 紧急应对措施:在服务器内存允许的情况下,同时增大SHEAPTHRES_SHR,SORTHEAP,以提高排序执行效率,缓解CPU使用率。
2.根本解决方法:综合使用db2pd -edu, -apinfo选项 ,SYSIBMADM管理视图等定位消耗CPU的SQL,进行SQL优化。
优化 SQL 是解决这个问题的王道,检查你的 SQL 语句,看看排序的语句是否可以优化。