`
sjk2013
  • 浏览: 2182695 次
文章分类
社区版块
存档分类
最新评论

一次监控系统进程影响的业务响应的问题及解决

 
阅读更多

也是十一期间,业务反应出帐过程中某程序执行特别慢,怀疑是oracle数据库有问题,需要尽快处理,根据业务提供的相关信息,相关业务从wwzg3主机发起,业务主要使用了账本通知表www_BOOK_CHG_NOTIFY和短信表WWW.www_busi_sms。
提供了一个sql语句
select *
from WWW.www_book_scheme_fee_0104 a,
WWW.www_book_scheme_rec_0104 b,
WWW.crm_user c
where a.so_nbr = b.so_nbr
and a.wwwt_id = c.wwwt_id
and a.after_month <= to_char(sysdate, 'yyyymm')
and c.phone_id = b.phone_id
and b.sts = 0

and a.sts = 0;

1,登录数据库主机,发现主机资源充足,系统资源不存在瓶颈,CPU利用率只有40%
SQL> !sar -u 3 5

HP-UX wbdb1 B.11.31 U ia64 10/04/12

12:24:01 %usr %sys %wio %idle
12:24:04 27 4 8 60
12:24:07 30 3 7 60
12:24:10 28 2 8 62
12:24:13 30 4 10 56
12:24:16 30 3 10 57

Average 29 3 9 59
2,开发提供的sql执行速度特别快,相关业务表唯一有点异常的sql执行计划如下,基本上都是全表扫描,但目前数据库中没有发现该语句正在运行
因此排除

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                         | Name                     | Rows  | Bytes |TempSpc| Cost (%CPU)| Pstart| Pstop |
---------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                  |                          |     1 |   430 |       | 87768   (1)|       |       |
|   1 |  TABLE wwwESS BY LOCAL INDEX ROWID| CRM_USER                 |     1 |    20 |       |    21   (0)|       |       |
|   2 |   NESTED LOOPS                    |                          |     1 |   430 |       | 87768   (1)|       |       |
|   3 |    HASH JOIN                      |                          |   385 |   154K|  2832K| 79678   (1)|       |       |
|   4 |     HASH JOIN                     |                          | 10999 |  2696K|   343M| 75513   (1)|       |       |
|   5 |      MERGE JOIN CARTESIAN         |                          |  5634K|   279M|       | 20348   (1)|       |       |
|   6 |       TABLE wwwESS FULL           | www_BOOK_SCHEME_COND     |  2189 | 32835 |       |    39   (0)|       |       |
|   7 |       BUFFER SORT                 |                          |  2574 | 95238 |       | 20309   (1)|       |       |
|   8 |        TABLE wwwESS FULL          | www_BOOK_SCHEME_SAP_MAP  |  2574 | 95238 |       |     9   (0)|       |       |
|   9 |      TABLE wwwESS FULL            | www_BOOK_SCHEME_REC_0104 |  2306K|   437M|       | 14986   (2)|       |       |
|  10 |     TABLE wwwESS FULL             | www_BOOK_SCHEME_FEE_0104 | 80636 |    12M|       |  3373   (2)|       |       |
|  11 |    PARTITION RANGE ALL            |                          |     1 |       |       |    20   (0)|     1 |    10 |
|  12 |     INDEX RANGE SCAN              | IDX_USER_PHONE           |     1 |       |       |    20   (0)|     1 |    10 |
---------------------------------------------------------------------------------------------------------------------------

3,数据库中的top 10 sql看,没有发现来自wwzg3主机的异常sql,基本上都来自wbzc4

awr本处省略
4,通过以上推断,数据库没有任何问题,于是转向查看运行相关进程的主机是否异常,果然问题不在数据库,在wwzg3主机资源利用率过高,系统利用率100%
CPU利用率100%,被%sys消耗,
root@wwzg3[/]#sar -u 3 5

HP-UX wwzg3 B.11.31 U ia64 10/04/12

13:47:38 %usr %sys %wio %idle
13:47:41 30 70 0 0
13:47:44 30 70 0 0
13:47:47 30 69 0 0
13:47:50 31 69 0 0
13:47:53 30 69 0 1

Average 30 69 0 0

5,262个idcp.sh进程正在运行
root@wwzg3[/]#ps -ef|grep idcp.sh|wc -l
262

root 20282 10168 1 13:55:30 pts/17 0:00 grep 7675
root@wwzg3[/]#ps -ef|grep idcp.sh
root 10315 10146 0 13:55:40 ? 0:00 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 9848 9803 253 20:40:00 ? 25:36 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 29251 29179 251 19:10:00 ? 30:05 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 19055 3432 0 16:40:00 ? 0:00 sh -c /home/patrol/IDCPCM/main/idcp.sh 1>/dev/null 2>/dev/null
root 13603 3432 0 15:50:00 ? 0:00 sh -c /home/patrol/IDCPCM/main/idcp.sh 1>/dev/null 2>/dev/null
root 13384 3432 0 18:20:00 ? 0:00 sh -c /home/patrol/IDCPCM/main/idcp.sh 1>/dev/null 2>/dev/null
root 26541 3432 0 15:20:00 ? 0:00 sh -c /home/patrol/IDCPCM/main/idcp.sh 1>/dev/null 2>/dev/null
root 29340 29289 252 21:10:00 ? 24:36 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 22296 22236 251 18:00:00 ? 34:44 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 10677 10653 252 21:00:00 ? 23:38 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 20122 3432 0 21:20:00 ? 0:00 sh -c /home/patrol/IDCPCM/main/idcp.sh 1>/dev/null 2>/dev/null
root 25174 25034 250 07:00:00 ? 6:48 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 6585 6499 251 03:20:00 ? 11:50 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 10206 10177 0 13:55:39 ? 0:00 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 25419 25344 253 21:40:00 ? 21:52 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 27135 3432 0 17:00:01 ? 0:00 sh -c /home/patrol/IDCPCM/main/idcp.sh 1>/dev/null 2>/dev/null
root 10347 944 0 13:55:40 ? 0:00 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 10167 10166 0 13:55:39 ? 0:00 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 25569 3432 0 18:30:00 ? 0:00 sh -c /home/patrol/IDCPCM/main/idcp.sh 1>/dev/null 2>/dev/null
root 10256 2025 0 13:55:40 ? 0:00 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
root 29111 29082 252 20:50:00 ? 24:08 /usr/bin/sh /home/patrol/IDCPCM/main/idcp.sh
6,该进程每隔10分钟会起一个定时任务,但从上面的进程看,昨天开始运行的进程都还没有执行结束,异常原因未知
#BOMC
30 2 * * * /home/patrol/CM/up_bin/get_cm.sh 1>/dev/null 2>&1
0,10,20,30,40,50 * * * * /home/patrol/IDCPCM/main/idcp.sh 1>/dev/null 2>/dev/null


7,kill 相关异常进程,为了防止问题再次发生,手工注释掉了该job的自动运行,系统恢复了正常
#BOMC
30 2 * * * /home/patrol/CM/up_bin/get_cm.sh 1>/dev/null 2>&1
#0,10,20,30,40,50 * * * * /home/patrol/IDCPCM/main/idcp.sh 1>/dev/null 2>/dev/null

改进措施

自动运行的监控脚本一直处于正常运行状态,很难定位具体异常的原因了。因此为了防止类似问题发生,对脚本程序进行了修改,增加了判断语句
前一个调度如果还没有执行完,则强制退出脚本,重新执行,并添加了日志记录
IDCPNUM=`ps -ef|grep idcp.sh|grep -v grep|wc -l|awk '{ print $1 }'`
if [ $IDCPNUM -ge 1 ]; then
ps -ef |grep idcp.sh |awk '{system("kill -9 "$2)}'
sleep 10
cd $TMDR
rm PM*.txt
fi

总结:业务反应数据库慢,其实可能根本不是数据库的问题,要综合分析判断,本次问题其实就出在访问数据库的客户端所在的主机太忙。



分享到:
评论

相关推荐

    消防数字化系统平台解决方案.doc

    随着城市化进程的加速,消防安全问题日益突出。传统的消防管理模式已无法满足现代社会的需求,因此需要借助数字化技术,提高消防管理的效率和响应速度。本解决方案旨在为消防部门提供全面的消防数字化系统平台,提升...

    网络数据安全.pptx

    4)服务重新上线并持续监控 5、跟踪 1)关注系统恢复以后运行的安全状况 2)建立跟踪文档,记录跟踪结果 3)对响应效果给出评估 网络数据安全全文共38页,当前为第7页。 应急响应 重新获得控制权 从网络中断开 备份...

    服务器存储工作作业流程.docx

    是否需要升级系统微码 是否关闭无须要服务进程 关键业务数据文件或操作系统文件空间使用是否达成预定阀值 关键机密系统数据安全防护设置是否满足要求 系统使用资源是否超出预定阀值 存放 检验IO读写速率情况 检验读...

    乡镇(街道)消防数字化监管平台解决方案.doc

    随着城市化进程的加速,消防安全问题日益突出,而乡镇地区的消防管理更是面临诸多挑战。为了提高乡镇消防管理的效率和响应速度,推动消防工作向智能化、精细化方向发展,我们提出了乡镇(街道)消防数字化监管平台...

    数据库项目组日常运维及应急故障处理手册.docx

    常见问题及处理方案 CPU使用率高的问题 通过操作系统命令top topas glance等查看top进程号,确认是系统进程还是oracle应用进程,查询当前top进程执行的操作和sql语句进行分析。 根据进程号获取正在执行的sql ...

    提升node.js中使用redis的性能遇到的问题及解决方法

    某基于node.js开发的业务系统向外提供了一个dubbo服务,提供向第三方缓存查询、设置多项业务数据并聚合操作结果。在QPS达到800时(两台虚拟机,每台机器4Core8G4node进程),在监控平台上出现了非常多的slow rt警告...

    基于微服务的车票管理系统源码+项目说明+sql数据库.tar

    流量与进程监控 + :star:基于Gateway针对同一IP的所有请求做令牌桶限流,基于Sentinel对热门车次的购票请求做限流降级 + 基于jmx和visualVM监控业务服务的内存和CPU消耗 ### 4. 网络编程 + 利用Httpclient调用第三...

    服务器负载均衡解决方案.doc

    健康检查机制不仅可以有效的监控到服务进程的有效性,即对应用端口提供服务的能力 进行健康检查,而且对于应用程序运行错误也同样可以提供有效的检查机制,从而避免 了客户端可以访问到服务器,但得不到响应的情况的...

    Loadrunner报错日志

    LoadRunner出现error问题及解决方法总结 一、Step download timeout (120 seconds) 这是一个经常会遇到的问题,解决得办法走以下步骤: 1、修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以...

    超级有影响力霸气的Java面试题大全文档

     GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...

    35.WMS助力企业数字化转型.pptx.rar

    "35.WMS助力企业数字化转型.pptx.rar"是一个针对物流与仓储管理领域的数字化转型解决方案精品资料,它不仅提供了深入的行业分析,还展示了如何通过高效的仓库管理系统(WMS)来推动企业的数字化进程。该资料首先阐述了...

    加速公用事业行业的数字化转型.rar

    通过这些措施,公用事业行业不仅能够提升其业务运作的效率和灵活性,而且还能更好地响应社会责任和环境保护的要求。综上所述,加速公用事业行业的数字化转型是一个全面而深入的进程,涉及从技术升级到文化变革的各个...

    (重要)AIX command 使用总结.txt

    //设置文件系统/tellinshare/sms的mind属性,否则当文件系统中有足够多的大文件(指32K以上的文件)时会出问题 #chfs -a options=rw,mind /tellinshare/sms mkgroup id=101 informix //创建组informix, 组编号101 ...

    企业网络安全防范有哪些.doc

    (4)各类信息管理人员根据岗位分工和岗位职责,每日对企业信息系统、网络、业务系 统、数据库、安全设备、服务器等运行情况进行监控和管理,做好相应的监管和故障排 查工作,确保能及时发现和解决问题。...

    网络安全管理的维护.pptx

    6.Processes(进程)是计算机中可并发执行的程序在一个数据集合上的运行过程,是程序的一次执行和资源分配的基本单位。 7.Threads(线程)是一个进程内的基本调度单位。一个进程可以有一个或多个线程;在多处理器环境...

    网络安全管理的维护(1).pptx

    6.Processes(进程)是计算机中可并发执行的程序在一个数据集合上的运行过程,是程序的一次执行和资源分配的基本单位。 7.Threads(线程)是一个进程内的基本调度单位。一个进程可以有一个或多个线程;在多处理器环境...

    网络安全设计方案.doc

    具体包括两方面的内 容,一是采用网络监控与入侵防范系统,识别网络各种违规操作与攻击行为,即时响应 (如报警)并进行阻断;二是对信息内容的审计,可以防止内部机密或敏感信息的非法 泄漏 针对企业现阶段网络系统...

    网络安全设计方案(2).doc

    具体包括两方面的内 容,一是采用网络监控与入侵防范系统,识别网络各种违规操作与攻击行为,即时响应 (如报警)并进行阻断;二是对信息内容的审计,可以防止内部机密或敏感信息的非法 泄漏 针对企业现阶段网络系统...

    大数据运营管理中心.doc

    比如,治安一套监控系统、城管的一套监控系 统、交警的一套监控系统。 在中国数据中心行业结构方面,电信、金融行业数据中心的建设较早,投入较大,应 用相对成熟,目前这两大行业数据中心建设投入占据了50%以上的...

    测试覆盖率

     凭着对软件测试行业的深刻理解,武友文意识到要解决国内软件应用滞后于硬件的问题,就必须提高国内软件的质量,而要提高软件质量,就必须加强软件开发过程中的测试力量,而独立的第三方测试机构正是一个市场空白点...

Global site tag (gtag.js) - Google Analytics