https://github.com/alibaba/TProfiler/wiki/TProfiler%E4%BB%8B%E7%BB%8D%E6%96%87%E6%A1%A3
TProfiler是一个可以在生产环境长期使用的性能分析工具.它同时支持剖析和采样两种方式,记录方法执行的时间和次数,生成方法热点 对象创建热点 线程状态分析等数据,为查找系统性能瓶颈提供数据支持.
TProfiler在JVM启动时把时间采集程序注入到字节码中,整个过程无需修改应用源码.运行时会把数据写到日志文件,一般情况下每小时输出的日志小于50M.
业界同类开源产品都不是针对大型Web应用设计的,对性能消耗较大不能长期使用,TProfiler解决了这个问题.目前TProfiler已应用于淘宝的核心Java前端系统.
部署后低峰期对应用响应时间影响20% 高峰期对吞吐量大约有30%的降低(高峰期可以远程关闭此工具)
先介绍几个系统性能的名词:
CPU: 不用说了吧
RT: 实时
QPS:QPS每秒查询率(Query Per Second)
LOAD:
TProfiler日志分析
tprofiler.log文件格式说明:
线程ID 线程栈深度 方法ID 方法执行时间
13 2 14558 6
13 2 14554 2
13 3 14576 2
13 4 14567 2
13 2 14554 4
13 2 14556 13
分析sampler log命令: java -cp tprofiler.jar com.taobao.profile.analysis.SamplerLogAnalysis d:/tsampler.log d:/method.log d:/thread.log
,会生成method.log和thread.log
method.log文件格式说明:
方法信息 采样过程中方法出现次数
org.quartz.simpl.SimpleThreadPool.getNextRunnable(SimpleThreadPool.java:428) 19728
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:518) 19728
org.quartz.simpl.SimpleThreadPool.access$000(SimpleThreadPool.java:47) 19728
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 17558
thread.log文件格式说明:
线程信息 采样过程中线程出现次数
56 DefaultQuartzScheduler_Worker-3 TIMED_WAITING 661
55 DefaultQuartzScheduler_Worker-2 TIMED_WAITING 661
60 DefaultQuartzScheduler_Worker-7 TIMED_WAITING 661
分析profiler log命令: java -cp tprofiler.jar com.taobao.profile.analysis.ProfilerLogAnalysis d:/tprofiler.log d:/tmethod.log d:/topmethod.log d:/topobject.log
,会生成topmethod.log和topobject.log
topmethod.log文件格式说明:
方法信息 执行次数 平均执行时间 全部执行时间
org/apache/velocity/runtime/parser/node/ASTBlock:render:74 38954 28 1101570
org/apache/velocity/runtime/parser/node/SimpleNode:render:338 39202 21 820064
topobject.log文件格式说明:
方法信息 执行次数 平均执行时间 全部执行时间
sketch/compile/parser/node/PropertyExecutor:<init>:32 573 1 636
sketch/util/introspection/UberspectImpl:<init>:282 34 7 241
相关推荐
现在我们来看TProfiler-master.zip压缩包中的内容。解压后,我们通常会得到一个包含源代码、文档、示例等资源的项目结构。主要文件夹和文件可能包括: - `src`:存放TProfiler的源代码,分为不同的模块,如核心分析...
阿里技术团队官方在 github 公布的最新 TProfiler-master.zip 文件。包含 TProfiler 源码、可执行 tprofiler-1.0.1.jar 文件、默认配置 profile.properties。 关于TProfiler实际用法及其注意事项,请参考博客JVM ...
截至 20160921 阿里技术团队官方在 github 公布的最新 TProfiler-master.zip 文件。包含 TProfiler 源码、可执行 tprofiler-1.0.1.jar 文件、默认配置 profile.properties。 关于TProfiler实际用法及其注意事项,请...
1. **安装与集成**:下载并解压TProfiler-master.zip,根据文档指导集成到项目中,通常需要修改配置文件,添加必要的启动参数。 2. **启动性能监控**:在应用程序启动时开启TProfiler,它会默默地收集性能数据。 3...
- **安装与配置**:下载并解压 TProfiler-master,根据文档配置环境,确保与目标应用程序兼容。 - **启动监控**:连接到目标应用程序,选择合适的分析模式(剖析或采样),启动监控。 - **收集数据**:在运行过程...
TProfiler是一个可以在生产环境长期使用的性能分析工具.它同时支持剖析和采样两种方式,记录方法执行的时间和次数,生成方法热点 对象创建热点 线程状态分析等数据,为查找系统性能瓶颈提供数据支持. TProfiler在JVM...
TProfiler is a code profiling tool. author:shutong.dy@taobao.com Note: TProfiler requires Java6™ VM. Please refer to Wiki for more information: https://github.com/alibaba/TProfiler/wiki The source ...
- **TProfiler**:阿里巴巴开源的性能分析工具,用于JVM应用的性能监控。 - **HouseMD**:故障诊断工具,可以收集各种信息帮助诊断问题。 - **jmxterm**:基于终端的JMX客户端。 - **TBJMap**:分析JVM堆转储文件的...
此外,还有btrace和TProfiler等高级诊断工具,以及Arthas等动态诊断框架。 Java内存模型规定了线程间的数据可见性和原子性,遵循happens-before原则,以保证程序的正确执行。synchronized和volatile关键字用于实现...
在Java工具的使用上,BTrace和TProfiler等工具提供了强大的动态跟踪和分析功能。JMX(Java Management Extensions)则允许远程监控和管理Java应用程序,这对于系统的运维和故障排查非常有用。同时,学习编写各种模拟...
https://github.com/taobao/TProfiler)产生了兴趣,于是就下下来研究了一下:非常简单小巧,代码质量也很高,最多20个class。其实现的核心原理就是利用javaAgent,在premain函数中使用java.lang.instrument....
还有WebXProfiler、TProfiler、BTrace、VisualVM等Java相关的分析工具,以及性能分析平台OProfile、Perf和Google-Perftools等。 5. 时间消耗分析与瓶颈查找 在性能分析过程中,时间消耗分析是至关重要的,它有助于...
此外,还有Eagleeye用于分布式跟踪,Pandora作为隔离容器解决二方包问题,TDDL作为通用数据访问层,TProfiler进行性能分析等。 3. **运行模型**: 阿里运行模型强调高可用性和稳定性,这包括线上压测、容量规划、...
8. 虚拟机性能监控与故障处理工具:jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, btrace、TProfiler 基础知识 1. 读取源代码:String、Integer、Long、Enum、BigDecimal、ThreadLocal、ClassLoader &...
3. 调试工具:TMS提供了一些强大的调试组件,如TProfiler,可以帮助开发者深入分析代码性能,找出潜在的瓶颈问题。 三、性能优化 TMS Component Pack注重性能优化,所有组件都经过精心设计和优化,能够在不影响...