天天看点

JVM :Btrace监控工具1.美图2.概述3. 使用场景

1.美图

JVM :Btrace监控工具1.美图2.概述3. 使用场景

2.概述

在生产环境中经常遇到格式各样的问题,如OOM或者莫名其妙的进程死掉。一般情况下是通过修改程序,添加打印日志;然后重新发布程序来完成。然而,这不仅麻烦,而且带来很多不可控的因素。有没有一种方式,在不修改原有运行程序的情况下获取运行时的数据信息呢?如方法参数、返回值、全局变量、堆栈信息等。Btrace就是这样一个工具,它可以在不修改原有代码的情况下动态地追踪java运行程序,通过hotswap技术,动态将跟踪字节码注入到运行类中,对运行代码侵入较小,对性能上的影响可以忽略不计。

在下列情况时可以使用BTrace进行分析:

  1. 接口性能变慢,分析每个方法的耗时情况;
  2. 当在Map中插入大量数据,分析其扩容情况;
  3. 分析哪个方法调用了System.gc(),调用栈如何;
  4. 执行某个方法抛出异常时,分析运行时参数;

3. 使用场景

  1. 服务慢,能找出慢在哪一步,哪个函数里么?
  2. <

继续阅读