本月博客排行
-
第1名
Xeden -
第2名
fantaxy025025 -
第3名
bosschen - paulwong
- johnsmith9th
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - gengyun12
- wy_19921005
- vipbooks
- e_e
- benladeng5225
- wallimn
- ranbuijj
- javashop
- jickcai
- fantaxy025025
- zw7534313
- qepwqnp
- robotmen
- 解宜然
- ssydxa219
- sam123456gz
- zysnba
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- wiseboyloves
- jh108020
- xyuma
- ganxueyun
- wangchen.ily
- xiangjie88
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- nychen2000
- zxq_2017
- lzyfn123
- wjianwei666
- forestqqqq
- ajinn
- siemens800
- hanbaohong
- 狂盗一枝梅
- java-007
- zhanjia
- 喧嚣求静
- Xeden
最新文章列表
Java程序排查问题利器之Btrace
(一)Btrace的介绍
BTrace是Java的安全可靠的动态跟踪工具。 他的工作原理是通过 instrument + asm 来对正在运行的java程序中的class类进行动态增强,可以在不用重启的情况下监控系统运行情况,方便的获取程序运行时的数据信息,如方法参数、返回值、全局变量和堆栈信息等,并且做到最少的侵入,占用最少的系统资源。
正如上面描述的一些特性,所以btrace一般是用来排 ...
btrace跟踪组数创建
之前有人问我怎么用btrace跟踪数组的创建,这里记录一下。
需要靠Kind.NEWARRAY,比如要跟踪int数组的创建可以这么写
@BTrace
public class BtraceCreateArray {
@OnMethod(clazz = "/.*/", method = "/.*/", location = @Locatio ...
BTrace试用
说明:
BTrace是Java进程诊断分析工具,优点是无侵入性,跟踪时对原有应用无干扰,不需要重启应用。
项目主页:https://kenai.com/projects/btrace
实验过程:
1、环境说明:
操作系统:windows 7
JDK版本:1.6 BTrace 版本:1.24
BTrace安装路径:c: ...
用BTrace排查性能问题
BTrace是一个可以动态跟踪Java代码执行的工具,网上已经有很多文章介绍,我这里分享一个我在实际工作中排查性能问题的例子。
现象
我的一个REST接口调用非常慢,postman耗时3873 ms,这个接口就是从redis里把一批数据取出来,redis性能很好,理论上不会这么慢,于是用btrace,trace方法调用。
/* BTrace Script Template */
i ...
使用Btrace查看某个线程池活跃线程大小
某一天想查看某个应用里的hsf活跃线程数(工作线程)。
第一个想到的jstack,根据jstack打出的日志分析。
典型日志:
Xml代码
"HSFBizProcessor-thread-6"prio=10 tid=0x00002aaabdffd800 nid=0x201f runnable [0x000000004768e000]
...
Btrace实践指南
一、背景 在生产环境中可能经常遇到各种问题,定位问题需要获取程序运行时的数据信息,如方法参数、返回值、全局变量、堆栈信息等。为了获取这些数据信息,我们可以通过改写代码,增加日志信息的打印,再发布到生产环境。通过这种方式,一方面将增大定位问题的成本和周期,对于紧急问题无法做到及时响应;另一方面重新部署后环境可能已被破坏,很难重新问题的场景。 二、BTrace功能 ...
BTrace实现原理的分析
什么是BTrace?BTrace是SUN Kenai云计算开发平台下的一个开源项目。旨在为java提供安全可靠的动态跟踪分析工具。
Btrace基于动态字节码修改技术(Hotswap)来实现运行时java程序的跟踪和替换。(还记得javarebel不?)Btrace的脚本是用纯java编写的,基于一套官方提供的annotation,使跟踪逻辑实现起来异常简单。
实现原理
用一个简单的公式来 ...
BTrace 神器 简单实用教程
BTrace本身也是可以独立运行的程序,作用是在不停止目标程序运行的前提下,通过HotSpot虚拟机的HotSwap技术动态插入原本不存在的调试代码。
比如遇到了我们的程序出问题,而又没有足够的打印语句时,我们一般的方法是不得不停掉服务,然后修改代码,增加打印语句,重新编译重新运行来解决,效率很低。
但有了BTrace,我们需要做的就很简单了,举例说明:
比如环境上运行着一个简单程序:
...
BTrace实际案例分析
问题表象
问题描述
1.最近有项目组的童鞋反馈,web页面频繁出现假死的状态。
2.web页面的假死出现是概率事件,且无法确定假死的引发原因。
3.是在一定的操作之后出现的,但是无法确定究竟是哪些操作引发这些操作。
问题分析
初步分析
在线调试工具BTrace 的使用--例子
BTrace 是一款利用hotSpot虚拟机可以动态替换class的特点而完成的,可以对online的程序动态的改变类的行为(一般为加些打印日志),进而进行线上调试的一个工具。
主要步骤如下(本次测试只针对BTrace和测试的程序在同一台机器上,remote的还待实验):
1、下载地址:http://kenai.com/projects/btrace/downloads/download/r ...