主机cpu突然飙高,如何快速排查问题
[问题发现]
使用zabbix软件监控服务器时发现cpu突然异常,在业务主机上使用top命令查看系统的整体运行情况,使用top命令后发现mysqld占用CPU特别高,初步判断可能是mysqld出现问题,需要排查:

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

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

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

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

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

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

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

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

图八

图九
至此,发现问题原因以及影响接口已全部排查出来!
主机cpu突然飙高,如何快速排查问题的更多相关文章
- 记一次yarn导致cpu飙高的异常排查经历
yarn就先不介绍了,这次排坑经历还是有收获的,从日志到堆栈信息再到源码,很有意思,下面听我说 问题描述: 集群一台NodeManager的cpu负载飙高. 进程还在但是看日志已经不再向Resourc ...
- rocketmq 主机负载异常飙高问题的解决
最近在部署rocketmq到物理机时, 发现并解决了一个主机Load异常飙高的问题, 觉得有必要记录一下. 我们采用了rocketmq(https://github.com/alibaba/Rocke ...
- 系统CPU飙高,怎么排查?
cpu是整个电脑的核心计算资源,对于一个应用进程来说,cpu的最小执行单元是线程. 导致cpu飙高的原因有几个方面: cpu上下文切换过多,对于cpu来说,同一时刻下每个cpu核心只能运行一个线程,如 ...
- java 一次CPU占用过高问题的排查及解决
最近一段时间 某台服务器上的一个应用总是隔一段时间就自己挂掉 用top看了看 从重新部署应用开始没有多长时间CPU占用上升得很快 排查步骤 1.使用top 定位到占用CPU高的进程PID ...
- 记一次linux通过jstack定位CPU使用过高问题或排查线上死锁问题
一.java定位进程 在服务器中终端输入命令:top 可以看到进程ID,为5421的cpu这列100多了. 记下这个数字:5421 二.定位问题进程对应的线程 然后在服务器中终端输入命令:top -H ...
- MongoDB CPU使用较高,如何排查?
前言 首先,我们简单梳理一下,CPU 在什么情况下才算负载较高?负载查看是通过"uptime"命令查看.大家都知道,命令显示的结果分别表示1分钟.5分钟.15分钟的负载情况,这点就 ...
- linux云主机cpu一直很高降不下来,系统日志报nf_conntrack: table full, dropping packet.
在启用了iptables web服务器上,流量高的时候经常会出现下面的错误: ip_conntrack: table full, dropping packet 这个问题的原因是由于web服务器收到了 ...
- 你要偷偷学会排查线上CPU飙高的问题,然后惊艳所有人!
GitHub 20k Star 的Java工程师成神之路,不来了解一下吗! GitHub 20k Star 的Java工程师成神之路,真的不来了解一下吗! GitHub 20k Star 的Java工 ...
- STORM在线业务实践-集群空闲CPU飙高问题排查
源:http://daiwa.ninja/index.php/2015/07/18/storm-cpu-overload/ 2015-07-18AUTHORDAIWA STORM在线业务实践-集群空闲 ...
随机推荐
- SpringBoot从入门到精通一(idea优雅搭建SpringBoot项目)
前言 在没有SpringBoot之前,我们搭建的是SSM(SpingMVC+Spring+Mybatis)项目,在搭建SSM项目的时候,我们要经过一系列的繁琐配置,例如:application,web ...
- shell遍历文件
取文件每行的数据,需要按列取 可以 sed 加管道 使用 awk 取列 platform="list.txt" line=`grep -vc '^$' $platform` ; ...
- GitLab安装后修改IP/域名
gitlab版本: 10.8.7 默认安装完成后,创建的项目地址为git@www.gitlab.com:xxx.git,还需DNS解析.避免麻烦直接配置成IP地址 解决方法: 1.进入安装目录 cd ...
- python 基础学习笔记(1)
声明: 本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...
- [apue] dup2的正确打开方式
管道与重定向常常需要使用dup与dup2复制句柄,其中dup2又较为常用,但是使用dup2有几个小坑需要注意. int dup2(int oldfd, int newfd); man手册页上是这样讲的 ...
- C++ 洛谷 P1731 [NOI1999]生日蛋糕
P1731 [NOI1999]生日蛋糕 一本通上也有. 这TM是一道极其简单的深搜剪枝(DP当然可以的了,这里我只讲深搜). 首先圆柱公式:(有点数学基础都知道) V=πR2H S侧=π2RH S底= ...
- 02(e)多元无约束优化问题- 梯度的两种求解方法以及有约束转化为无约束问题
2.1 求解梯度的两种方法 以$f(x,y)={{x}^{2}}+{{y}^{3}}$为例,很容易得到: $\nabla f=\left[ \begin{aligned}& \frac{\pa ...
- Vs连接Mysql数据库
Vs连接Mysql数据库步骤 1. 首先下载mysql数据库,安装,建库建表 https://www.yiibai.com/mysql/getting-started-with-mysql-store ...
- kuangbin专题 专题一 简单搜索 Catch That Cow POJ - 3278
题目链接:https://vjudge.net/problem/POJ-3278 题意:人可以左移动一格,右移动一格,或者移动到当前位置两倍下标的格子 思路:把题意的三种情况跑bfs,第一个到达目的地 ...
- Python 爬虫从入门到进阶之路(十八)
在之前的文章我们通过 scrapy 框架 及 scrapy.Spider 类做了一个<糗事百科>的糗百爬虫,本章我们再来看一下相较于 scrapy.Spider 类更为强大的 CrawlS ...