主机cpu忽然飙高,如何快速排查问题

[问题发现]
使用zabbix软件监控服务器时发现cpu忽然异常,在业务主机上使用top命令查看系统的总体运行状况,使用top命令后发现mysqld占用CPU特别高,初步判断多是mysqld出现问题,须要排查:mysql

clipboard.png

[排查步骤]
Step1:
登陆oneapm ai平台后能够看到应用列表的总览视图,在总览视图中能够看到全部应用的名称以及相关指标信息,同时咱们还能够根据应用颜色变化来判断每一个应用的指标变化状况。本例中在Acmeair应用的“用户体验一览”选项卡下能够看到它的业务在最近一段时间内出现了71次失败,咱们须要点击此应用查看详情,如图一:sql

clipboard.png

图一数据库

Step2:
利用top命令已经基本排查出是数据库致使CPU占用太高,咱们能够经过查看调用数据库的节点发现问题。
在AI平台上点击某个应用进入到该应用的主页,进入以后能够看到该应用的整体拓扑图,总览拓扑图会把应用中全部Tier、数据库、远程服务与其余应用之间的调用关系描绘出来,而且显示他们的性能状况。当某个节点的颜色为黄色或红色时,表明该Tier的健康状态是告警或严重。
点击拓扑图右上侧的“数据库-展开”选项,能够看到调用mysql数据库的节点,点击该节点(例以下图中的Webapp11节点),出现的弹框中有总览、节点、Web事务入口、Web事务、主机和容器几个选项卡。“Web事务入口”能够看到某个应用在应用环境中请求的起始点;而“Web事务”展现了一些用户最关心的的指标,从而让用户对当前查看Web事务的健康情况产生整体的了解。
点击“Web事务入口”选项能够看到对应接口的响应时间正常,表明对应接口表现正常,如图二;咱们须要继续排查“Web事务”部分。后端

clipboard.png

图二服务器

点击“Web事务”选项,能够给出该节点中全部Web事务的响应时间及调用次数,点击“响应时间”能够将响应时间从高往低排序,从而确认缓慢的“Web事务”,如图三。本例中,点击响应时间最长的Web事务查看详情。app

clipboard.png

图三性能

Step3:
点击响应时间最长的一个Web事务后,左上角“总览”下“Web事务”的标签会显示出该Web事务的平均响应时间,点击某一响应时间较长的时间点,能够向下钻取到所选时间段,精准定位到问题时间点。同时在Web事务的下方能够看到该时间段内的最慢组件,如图四。
在本例中下钻到具体时间点后,能够在“总览”界面的“最慢组件”下看到是一个select语句比较耗时,再次佐证了咱们的想法。优化

clipboard.png

图四spa

Step4:
Trace是对这段时间内该用户缓慢或错误请求的详细追踪。
钻取到问题时间段后,咱们查看该时间范围内的Trace列表,如图五。由于同一个Web事务调取到的后端信息都是相同的,因此咱们只须要选取其中的一条或几条最优表明性(例如响应时间较长)的Trace进行问题定位便可。
在本例中咱们按响应时间进行排序降序排列后,选择第一条进行Trace详情查看。3d

clipboard.png

图五

点击所选Trace以后,在Trace概要中能够看到该Trace中的最慢组件,如图六。例如图六中咱们能够在Trace的总览页面发现customer/select语句耗时较长。

clipboard.png

图六

弹框中一样还能够查看该Trace中的堆栈调用详情。点击“详情”选项卡,如图七,能够看到该sql语句对接口的影响,从而进行代码的优化。在本例中,咱们能够看到SQL语句的耗时百分比较高,能够看出该SQL语句对接口影响较大。

clipboard.png

图七
点击该SQL语句 附加信息栏中的图标,能够查看到耗时较长的的sql语句详情。咱们也能够弹框左上角中的“SQL”选型卡,在弹框中也能够看到语句详情、该语句的响应时间及调用次数,如图8、图九:

clipboard.png

图八

clipboard.png

图九

至此,发现问题缘由以及影响接口已所有排查出来!

相关文章
相关标签/搜索