简介:
uProfiler Community是面向主题的一种JVM监控工具,它通过JVMTI和bytecode技术,在JVM运行期间把相关的bytecode精确的注入到当前JVM所载入class字节合适的地方,不修改原class文件,从而达到监控JVM的目的。完整的uProfiler Community版本有两大部分组成,其整体结构如下图。
其中,Agent在class被JVM执行之前,通过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
@仪山湖
相关推荐
它报告功能级别的调用计数以及包含性和排他性指标,例如挂墙(经过)时间,CPU时间和内存使用情况。 调用者或被调用者可以细分功能的配置文件。 原始数据收集组件在C中作为名为uprofilerPHP Zend扩展uprofiler 。 ...
最新 新版本已开发完成,做了如下改进: :rainbow:支持本地Sqlite存储,也支持MySQL和MongoDB存储。 :globe_showing_Europe-Africa:国际化,支持英语/简体中文...获取大量信息PHP扩展很多,可以使用uprofiler,tide
uprofiler 提供了与 xhprof 类似的功能,但更加简洁和易于使用。它能够记录每个请求的性能数据,并以可视化的形式展示,帮助开发者识别性能问题。 `yii2-debug-profiler` 扩展将这些强大的性能分析工具集成到了 Yii...
xhgui, 在MongoDB上,构建XHProf数据的图形界面 xhgui基于MongoDB的XHProf数据...这里工具需要安装 XHProf 或者它的一个 fork Uprofiler 。 Tideways 。 XHProf是一个用于记录和提供分析数据的PHP扩展。 XHGui ( 这里
一、ERA5数据下载,deepseek提问全图
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
该项目是一款基于Spring Boot和VUE框架构建的校园闲置物品在线交易平台源码,总计包含732个文件,涵盖了丰富的资源类型,包括226个GIF图片、148个JavaScript文件、87个Java文件、64个HTML文件、46个JPG图片、42个CSS文件、28个PNG图片、16个XML文件、14个LESS和SCSS样式表文件。该平台的设计与开发旨在为校园内的学生提供一个便捷的闲置物品交流与交易环境。
停车位状态检测系统源码和数据集:改进yolo11-DCNV2-Dynamic
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
树莓派人脸识别(dlib,opencv自带的算法)
法国Embouchure地区沉积物岩性数据集 内容 该数据集由O. Puertas在2014年发布,详细记录了法国Embouchure地区的EMBOU岩芯沉积物的岩性特征。数据集中包含了39个数据点,提供了关于该地区沉积环境的重要信息。欲了解更多信息,请访问"PANGAEA数据库中的原始数据" ()。
使用android studio实现科大讯飞的aikit语音唤醒功能, 纯净版最新版语音唤醒功能
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
华为整理题
【GO】基于go实现的生日提醒定时任务_pgj
沉积物岩心KS03的岩石学数据 内容 这份数据集由Nelle, O在2014年发布,详细记录了沉积物岩心KS03的岩石学特征。数据集包含了15个数据点,提供了对特定地质样本的深入分析。欲了解更多信息,请访问"此处" ()以查看完整的数据集。
内容: 德国海洋研究中心(GEOMAR)的Christian Hensen于2014年发布的关于沉积物核心GeoB9040-1的孔隙水地球化学数据。该数据集包含了147个数据点,提供了详细的孔隙水成分分析结果。通过访问以下链接可获取完整的数据集信息:"" ()。此研究对于理解特定海洋沉积环境中的生物地球化学过程具有重要意义。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。