uProfiler使用指南

3 篇文章 0 订阅
1 篇文章 0 订阅

介:

uProfiler Community是面向主题的一种JVM监控工具,它通过JVMTI和bytecode技术,在JVM运行期间把相关的bytecode精确的注入到当前JVM所载入class字节合适的地方,不修改原class文件,从而达到监控JVM的目的。完整的uProfiler Community版本有两大部分组成,其整体结构如下图。

其中,AgentclassJVM执行之前,通过JVMTI来拦截被载入的class,分析其bytecode指令,对符合我们感兴趣的bytecode指令附近,插入收集bytecode指令,并且启动一个MXBean,以JMX接口的形势,供外部调用。目前,uProfiler Community版本只支持JMX远程方式调用,因此,启动JVM的时候,需要启动JMX服务,才能让client收集到。未来的后续版本中会引入及时启动Agent的功能。

uProfiler Client通过调用JMX接口,定期收集主题元数据,经过一定的加工,以图形化、表格化的方式显示 出来。

Agent在启动的过程中,会读取Agent Config文件,这个文件中指定了Agent感兴趣的内容所在的class范围。

 

配置:

Agent Config文件主要有6个配置项,但目前使用的只有前4项,默认情况下,只要配置qualified.name这项即可,详细的配置如下,发行版本的example工程里有agent.properties这个文件,供参考。

 

### uAgent在扫瞄类名的过程中,发现类名以qualified.name开头,才注入字节码,
### qualified.name既可以是一个package的名字,也可以是一个类的全名,
### 若有多个qualified.name,逗号分割
qualified.name=net.sf.fastupload.multipart.resolver.mvc

### 打印每次收集信息,默认不打印,打印收集信息对线上的APP有一定的性能影响
verbose=false

### 调试模式,打印出扫瞄类和字节码注入的信息,并且把注入了字节码的类写入文件系统,
### 这些文件位于启动java进程的目录下的dump文件夹内
debug=false

### 当一个方法中调用了其他类的函数时,是否收集这些函数的执行时间。默认情况下,是不收集的,
### 如果此项配置为true, 仍然检查被调用的函数名是否以qualified.name开头
drill.through.method=true

启动:

 

使用uProfiler Agent时,需要为JVM增加几个启动参数,指定agent和JMX服务配置,对于对立的java app而言,其命令如下,

java -javaagent:/path/to/uAgent-1.0.0.jar -Dagent.config=/path/to/agent.properties \
-Dcom.sun.management.jmxremote.port=9999 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.local.only=false \
 -Dcom.sun.management.jmxremote.ssl=false  your.main.class

 

对于web app而言,以tomcat为例,则首先要设置JAVA_OPTS这个shell环境变量,

$ export JAVA_OPTS=”-javaagent:/path/to/uAgent-1.0.0.jar -Dagent.config=/path/to/agent.properties -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.local.only=false 
 -Dcom.sun.management.jmxremote.ssl=false”

### in tomcat home directory
$ bin/startup.sh

 

启动uProfiler Agent后,使用uProfiler Client连接到9999 JMX远程端口,观察结果。client的使用方法清参考http://www.oschina.net/p/uprofiler

 

@仪山湖

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值