阿里线上问题诊断工具Arthas和jvm-sandbox
大纲目录 这篇文章是之前学习Arthas和jvm-sandbox的一些心得和总结,希望能帮助到大家。本文字较多,可以根据目录进行对应的阅读。 背景:现在的问题所在? Arthas: Arthas能帮助你干什么?各种命令原理是什么? jvm-sandbox: jvm-sandbox能帮助你干什么? 实现原理?自己如何实现一个? 常见的一些问题? 1.背景 2018年已过,但是在过去的一年里面开源了很多优秀的项目,这里我要介绍两个比较相似的阿里开源项目一个是Arthas,另一个是jvm-sandbox。这两个项目都是在今年开源的,为什么要介绍这两个项目呢?这里先卖个关子,先问下大家不知道是否遇到过下面的场景呢? 当你线上项目出了问题,但是一打开日志发现,有些地方忘记打了日志,于是你马上补上日志,然后重新上线。这个在一些上线流程不规范的公司还比较轻松,在一些流程比较严格,比如美团上线的时候就有封禁期,一般就只能9点之后才能上线。有可能这样一拖就耽误了解决问题的黄金时刻。 当你的项目某个接口执行速度较慢,为了排查问题,于是你四处加上每个方法运行时间。 当你发现某个类有冲突,好像在线上运行的结果和你预期的不符合,手动把线上编译出的class文件下载下来然后反编译,看看究竟class内容是什么。 当代码已经写好准备联调,但是下游业务环境并没有准备好,于是你把以前的代码依次进行注释