1分钟发现-5分钟响应-10分钟恢复,是定义故障处理的时效性目标。在阿里巴巴内部经过多年的实践,这也早已成为各个业务稳定性、基础设施稳定性以及大促保障的重要牵引指标。对于故障,最难的往往不是排查解决,而是保证上述1-5-10时效性。程序摄像头Trace Profiling直击排障痛点,期望帮助用户在分钟级以标准化步骤定位全资源种类的故障根因。

1. 常规排障痛点

当生产环境CPU使用率过高时,我们的常规思路是,登录上机器:

  1. 排查占用CPU的进程

  2. 找出实际占用最高CPU的线程

  3. 用jstack获取对应线程的堆栈信息,找出耗CPU的代码位置对应修复

此举易行,但是这一套操作下来,很花时间,而且如果CPU一会高,一会正常该怎么排查?比如:对象序列化、反序列化是开发的超高频操作,但是很多小伙伴可能不知道,这是很费CPU的。尤其在对象很大的时候,在生产环境就容易引起CPU飙高,但持续时间又很短,难以捕捉的情况,这种无法稳定复现的该怎么排查?

2.案例说明

我们模拟了上述场景,对一个6M大小的对象用不同的序列化框架进行序列化操作,并捕捉了请求Trace,耗时如下:

  • Fastjson:285.00ms

  • Jackson:255.29ms

  • Gson :283.08ms

  • net.sf.json:655.06ms

我们来看下程序摄像头是如何通过标准化排障步骤,实现10分钟内快速排查这个因大对象序列化导致Trace异常耗时问题的:

3. 程序摄像头Trace Profiling标准化步骤排障

3.1 找关键Trace

通过Trace系统,结合时间点,找出相关可能存在问题的关键Trace,并在程序摄像头系统上找到需要排查的Trace的profile记录。

3.2 查Span信息

选择好profile之后,本页面会展示该Trace的span执行消耗分析,如下图。但是我们只能看到Span耗时很长,但不知道时间消耗在哪里。

3.3 分析Trace执行线程事件

点击Span展开,查看对应的详细信息,通过线程事件详情来分析CPU异常原因。

我们可以看到,本次Trace的执行主线程花了大部分时间在做running(即cpu逻辑计算)事件,点击running事件,可查看堆栈信息。堆栈显示,这是系统在执行JSON.toJSON操作,从这里我们可以推断出,本次Trace是因为执行了大对象的序列化操作,导致CPU耗时异常。

4. 精准还原执行现场,10分钟黄金时间排障

CPU问题的关键是找到问题代码堆栈,我们普遍的排查方式是“事后诸葛”:出现问题了,再去打堆栈,费时不说,有些难复现的会比较棘手。而程序摄像头Trace Profiling像监控一样,在系统请求执行过程中完整记录了我们需要的高CPU耗时堆栈,它通过捕捉一次请求下所有的系统调用事件、整合metric数据,精准还原现场。颠覆我们以往的排障思路:不再是从问题现象,反查、排除和推理,而是从问题发生现场过程,快速定位根因。以此实现10分钟黄金时间快速排障,降低排障门槛,降低对专家经验的依赖。

更多生产环境常见案例以及相应的demo试用环境,大家可前往我们的官网查看体验:

http://kindling.harmonycloud.cn/blogs/use-cases/trace-profiling-menu/introduction-menu/

  • 应用与网络问题如何快速定位?

  • 如何高效排查生产环境文件IO问题?

  • 如何快速排查生产环境多线程问题?

  • 业务问题案例:通过报文判断生产环境Spring事务是否生效

5.  关于程序摄像头 Trace Profiling 

官网地址:http://kindling.harmonycloud.cn

GitHub:https://github.com/kindlingproject/kindling

6. 序列化知识点拓展

上面的demo中我们用的是Fastjson框架,其他3种序列化框架,Trace捕捉记录如下:

6.1 Jackson 255.29ms

6.2 Gson 283.08ms

6.3 net.sf.json 655.06ms

我们可以看到,4种序列化框架工具效率存在差异,尤其是net.sf.json框架,效率很低,我们在开发过程中应该慎用。由此可见,相对其他排障工具,程序摄像头Trace Profiling“更人性化”地帮你捕捉了高CPU耗时的堆栈信息。

以标准化流程,分钟级定位全资源种类故障的根因

kindling 开源团队,公众号:Kindling 云可观测程序摄像头Trace Profiling:生产环境10分钟黄金时间快速排障手册

对本次实验感兴趣或想了解更多程序摄像头 Trace Profiling 的小伙伴可以添加小编wx:Xieyun-kindling

生产环境10分钟黄金时间快速排障:CPU不定时飙高怎么排查?相关推荐

  1. 世纪前线网络质量测试工具 是什么_【案例分享】利用手持式测试工具对建筑控制系统快速排障的方法...

    有人说智能楼宇是巨无霸行业, 其实一点都不为过. 截止去年, 全球40%的人口居住在城市中, 而中国这一比例达到了60%. 随着时代的发展,越来越多的建筑物正在部署智能控制系统,以此作为提高能源效率. ...

  2. 4年测试经验去面试10分钟就被pass,测试现在要求这么高了?

    年过完了,大家都开始上班了,各位小伙伴多多注意身体,但是学习也别落下等 做为一名优秀的程序员,技术面试都是不可避免的一个环节,通常技术面试官都会经过本身的方式去考察程序员的技术功底与基础理论知识. 若 ...

  3. w ndows 10画图,网友“羞辱”Windows 10界面设计:用画图 10分钟搞定!

    原标题:网友"羞辱"Windows 10界面设计:用画图 10分钟搞定! Windows 10是个好系统,但是UI界面设计一直有不小的争议.微软试图全面扁平化,但很多时候仿佛只是为 ...

  4. 使用 Laradock 10 分钟部署 Laravel 或 Notadd 环境

    2019独角兽企业重金招聘Python工程师标准>>> 为什么使用docker? 部署快 只需要几分钟,就能部署好一套PHP环境 性能好 docker 的性能损失只有1-2%,几乎可 ...

  5. 一:Greenplum5.10.2 生产环境安装配置 (系统初始化、安装准备)

    Centos7.5安装配置Greenplum5.10.2 (生产环境) 服务简介: Greenplum Master Master只存储系统元数据,业务数据全部分布在Segments上.其作为整个数据 ...

  6. 15分钟从零开始搭建支持10w+用户的生产环境(二)

    上一篇文章,把这个架构的起因,和操作系统的选择进行了详细说明. 原文地址:15分钟从零开始搭建支持10w+用户的生产环境(一)   二.数据库的选择 对于一个10W+用户的系统,数据库选择很重要. 一 ...

  7. 15分钟从零开始搭建支持10w+用户的生产环境(四)

    上一篇文章,介绍了这个架构中,WebServer的选择,以及整个架构中扩展时的思路. 原文地址:15分钟从零开始搭建支持10w+用户的生产环境(三)   五.架构实践 前边用了三篇文章,详细介绍了这个 ...

  8. 15分钟从零开始搭建支持10w+用户的生产环境(三)

    上一篇文章介绍了这个架构中,选择MongoDB做为数据库的原因,及相关的安装操作. 原文地址:15分钟从零开始搭建支持10w+用户的生产环境(二)   三.WebServer 在SOA和gRPC大行其 ...

  9. 在10分钟内在新Mac中设置Java开发环境(更新)

    这只是一个小的更新文章,它引用了2个较旧的条目( a , b ),我将它们合并为一个步骤,就像一步操作,并确保所有功能都在最新的MacOSX 10.9 Mavericks下工作 . 我主要针对的是初次 ...

最新文章

  1. bzoj4385 POJ2015 Wilcze doły
  2. 纯CSS实现多级菜单,兼容IE6
  3. Java——集合带All的功能演示
  4. uva 1220——Party at Hali-Bula
  5. 极乐技术周报(第十六期)
  6. c语言变量的值也可以不改变6,C语言学习复盘整理笔记(六)
  7. windows平台搭建opencv_python
  8. 数据结构by王卓老师
  9. 2022-强烈推荐的7款浏览器插件
  10. apple苹果IOS内购申请教程协议、税务和银行业务配置
  11. java VM option
  12. python 百度aip实现文字识别
  13. 首款搭载国产龙芯 CPU 的域名服务器发布
  14. java 引入微信sdk_手把手教您开发JAVA微信SDK-新手接入
  15. VR 、SR 轴矢冠三个切面的显示
  16. 零基础学Java需要多长时间?
  17. 分布式唯一ID几种生成方案
  18. 脉冲神经网络的五脏六腑
  19. 银行卡的这些接口是什么?
  20. 2020 年百度之星·程序设计大赛 - 初赛三-Discount

热门文章

  1. ExpandableListView仿QQ好友列表
  2. python3 excel样式_python3my使用python.pandas修改excel样式
  3. .net core 2.2 在IIS 8.5 发布的坎坷经历
  4. 5分钟理解什么是新三板
  5. 极智AI | 寒武纪 MLU resnet50 量化及离线推理流程
  6. ASF学习笔记 (转贴)
  7. OKR让Z世代员工更创新,更努力
  8. Python中无法导入上一级目录下的包
  9. Linux自建steam饥荒服务器教程
  10. 学会python正则表达式就是这么简单