一种CPU高消耗的DB2进程/线程快速定位方法与流程

文档序号:11864561阅读:2662来源:国知局
一种CPU高消耗的DB2进程/线程快速定位方法与流程

本发明涉及一种数据库运维处理方法,尤其涉及一种CPU高消耗的DB2进程/线程快速定位方法。



背景技术:

在数据库运维过程中,常接到客户反馈:系统CPU使用率高,具体不好定位到是哪个DB2的进程/线程所占用了CPU高,更不好定位是由于什么数据库操作引的CPU使用率高。

现有技术没有找到CPU使用率高的进程,主要是对操作系统层的相关性能监控工具没有正确合理地使用;对DB2的进程/线程模型没有深入研究;更没有合理组合操作系统层面工具、数据库层面工具来联合定位问题及解决问题。



技术实现要素:

本发明所要解决的技术问题是提供一种CPU高消耗的DB2进程/线程快速定位方法,无需增加额外的用户配置就能快速定位引起CPU高消耗的DB2进程/线程及其相关的数据库操作,为后续提供性能优化及解决方案制定奠定了良好的基础。

本发明为解决上述技术问题而采用的技术方案是提供一种CPU高消耗的DB2进程/线程快速定位方法,包括如下步骤:a)先查看当前正在运行的进程及其CPU使用率情况,判断系统中CPU高消耗进程是否为DB2进程;b)如果确认DB2进程为CPU高消耗进程,接着对DB2数据库进行监控,定位引起CPU高消耗的agent;c)最后定位该agent中CPU高消耗的数据库操作。

上述的CPU高消耗的DB2进程/线程快速定位方法,其中,所述步骤a)通过执行系统命令查看当前正在运行的进程及其CPU使用率情况,并按CPU使用率进行降序排列,从而确定CPU高消耗进程。

上述的CPU高消耗的DB2进程/线程快速定位方法,其中,所述步骤b)通过运行DB2自带的工具db2top对数据库进行监控,在会话监控界面根据预设的时间间隔,刷新当前数据库所有agent的状态及对其系统资源的使用情况。

上述的CPU高消耗的DB2进程/线程快速定位方法,其中,所述预设的时间间隔为2秒,所述系统资源的使用情况包括CPU、IO以及内存的使用情况。

上述的CPU高消耗的DB2进程/线程快速定位方法,其中,所述步骤c)使用DB2的快照命令获取对应agent的快照,从而获得该对应agent当前正在执行的数据库操作。

上述的CPU高消耗的DB2进程/线程快速定位方法,其中,还包括通过更新统计信息、新建合适索引或者利用DB2数据库高级物理及逻辑设计对当前所执行的SQL进行优化,降低CPU使用率。

本发明对比现有技术有如下的有益效果:本发明提供的CPU高消耗的DB2进程/线程快速定位方法,通过组合使用操作系统监控命令和数据库监控工具,由引起CPU高消耗的DB2进程,找到相关联的agent,最后定位引起该相关联的agent使用CPU高的数据库操作,从而无需增加额外的用户配置,就能快速定位引起CPU高消耗的DB2进程/线程及其相关的数据库操作,为后续提供性能优化及解决方案制定奠定了良好的基础。

附图说明

图1为本发明CPU高消耗的DB2进程/线程快速定位流程示意图;

图2为本发明通过执行系统命令查看当前运行的进程及其CPU使用率示意图;

图3为本发明运行DB2自带的工具db2top对数据库进行监控界面示意图;

图4为本发明通过db2top查看CPU高消耗的DB2进程/线程示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的描述。

图1为本发明CPU高消耗的DB2进程/线程快速定位流程示意图。

请参见图1,本发明提供的CPU高消耗的DB2进程/线程快速定位方法,包括如下步骤:

1、先定位系统中使用CPU高的是否为DB2进程

执行命令top(AIX平台执行topas),可以看到系统整体资源使用情况,以及现在正在运行的进程及其CPU使用率情况,如图2所示。其中的进程列表已经按CPU使用率(%CPU)的降序排列了,比如从执行命令的输出结果发现系统进程中CPU使用率最TOP的是DB2主进程:db2sysc,相关用户是:db2inst1。

2、再从DB2数据库层面定位使用CPU最TOP的agent

运DB2自带工具db2top对数据库(sample为数据库名)进行监控,如图3所示;

db2top–d sample;

执行上述命令进入操作界面后,选择会话监控功能:“l-Sessions”,此会话监控界面根据设置的时间间隔(通常是2秒),刷新当前数据库所有agent的状态及对其系统资源(CPU、IO、内存)的使用情况。比如从“CPU%Total”一列可以看到当前“Application Handle=27”的agent在所有DB2进程/线程中所占用的CPU是最TOP的,如图4所示。

3、最后,定位引起agent使用CPU高的操作。

使用DB2的快照命令获取对应agent的快照:

db2"get snapshot for application agentid 27",可以查看到此agent当前正在执行的数据库操作(SQL)。

本发明提供的CPU高消耗的DB2进程/线程快速定位方法,需要操作系统管理员SA+数据库管理员DBA双双组合,双重领域知识的强强联手。通过理解相关层面的监控工具及深入研究他们,无需任何用户额外地配置,联合操作系统工具及DB2工具,只需轻松3步就可以很好、快速地定位消耗CPU高的DB2进程/线程,以及更好地定位引起CPU高的数据库层面操作,为后续提供性能优化及解决方案制定奠定了良好的基础。

具体来说,作为后续优化工作,根据业务需求、数据库当前的状态,分析、评估性能问题操作是否可以通过更新统计信息、新建合适索引、利用DB2数据库高级物理及逻辑设计等对其当前所执行的SQL优化,提高执行效率、降低CPU使用率。

综上所述,本发明提供的CPU高消耗的DB2进程/线程快速定位方法,按方案共3个步骤的操作,就可以快速定位消耗CPU高的DB2进程/线程,定位引起CPU高的SQL操作,问题定位及解决提供快速的解决方案,加快故障响应及处理时间,增加DBA的工作效率。

虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1