主机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在线业务实践-集群空闲 ...
随机推荐
- Python-基本数据类型(list,tuple)
一. 列列表 1.1 列列表的介绍 列表是python的基础数据类型之⼀一,其他编程语言也有类似的数据类型. 比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用' , ...
- 【转】php7对redis的扩展及redis主从搭建
一:redis安装 1:下载并安装 cd /home/software wget http://download.redis.io/releases/redis-3.2.3.tar.gz ta ...
- 05-MySQL的完整性约束
1.整体说明(1)讨论重点内容 not null 与default unique:表中该值唯一,不能有重复值 primary auto_increment foreign ...
- Ace-Admin框架-首页(一)
ACE-Admin是一个强大的后台模板框架,看起来非常漂亮,但是每个页面内容太多,看起来不知道怎么修改,现在来对首页进行主要内容改装,将不需要的内容都给删除,然后就只剩下一个框架,在开发中,我们就完全 ...
- 什么是 VxLAN?
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. VLAN 和 ...
- KVM虚拟机迁移至VMware
1.将kvm下虚拟机关机: [root@localhost ~]# virsh list --all Id Name State ----------------------------------- ...
- python面试题(二)字符串常用函数
今天在微信的公众号上看到了一遍python学习开发的文章,里面有一些python的面试题,碰巧最近python不知道学什么了,索性学一下这篇文章啊!!先写一下一些字符串的常用函数.(ps:本人太菜,若 ...
- redis RDB 和AOF
参考文献 Redis源码学习-AOF数据持久化原理分析(0) Redis源码学习-AOF数据持久化原理分析(1) Redis · 特性分析 · AOF Rewrite 分析 深入剖析 redis AO ...
- 西门子PLC中各个组织块OB作用(OB1、OB100……)
1.自由循环组织块OB1 S7 CPU启动完成后,操作系统循环执行OB1,OB1执行完成后,操作系统再次启动OB1.在OB1中可以调用FB.SFB.FC.SFC等用户程序使其循环执行.除OB90以外 ...
- jquery对下拉框的操作
jQuery对下拉框的操作 /获取第一个option的值 $('#test option:first').val(); //最后一个option的值 $('#test option:last').v ...