淘宝tprofiler使用说明

下载tporfiler

https://codeload.github.com/alibaba/TProfiler/zip/master


下载完成,TProfiler-master.zip 。有dist目录,解压TProfiler_1.0.1.zip为/home/ic/tprofile目录。移动lib下tprofiler_1.0.1.jar到/home/ic/tprofile目录。

编辑/home/ic/tprofiler/profile.properties文件,

1.修改参数

startProfTime = 8:30:00 开始profile的时间点
endProfTime = 17:30:00 结束profile的时间点

2.日志默认配置

用户目录下logs目录,即/home/ic/logs

[ic@linux-5f173 logs]$ pwd
/home/ic/logs
[ic@linux-5f173 logs]$ ll
total 11184
-rw-rw-r-- 1 ic ic     2032 Jul 22 13:14 method.log
-rw-rw-r-- 1 ic ic     5863 Jul 22 13:14 thread.log
-rw-rw-r-- 1 ic ic     5485 Jul 22 13:34 tmethod.log
-rw-rw-r-- 1 ic ic       55 Jul 22 13:30 topmethod.log
-rw-rw-r-- 1 ic ic        0 Jul 22 13:30 topobject.log
-rw-rw-r-- 1 ic ic    15274 Jul 22 13:39 tprofiler.log
-rw-rw-r-- 1 ic ic 11393647 Jul 22 13:40 tsampler.log


jvm虚拟器启动参数增加如下参数,并启动java应用

-javaagent:/home/ic/tprofiler/tprofiler.jar -Dprofile.properties=/home/ic/tprofiler/profile.properties

等几分钟后,会在logs目录下,生成tprofiler.log 与 tsampler.log文件。这两个文件是原始文件,需要使用ProfilerLogAnalysis类与SamplerLogAnalysis  类分别进行日志分析

如果是tomcat,修改catalina.sh增加

JAVA_OPTS=" -javaagent:/home/ic/tprofiler/tprofiler.jar -Dprofile.properties=/home/ic/tprofiler/profile.properties"

 分析tsampler.log采样文件,输出method.log与thread.log两文件

java -cp tprofiler.jar com.taobao.profile.analysis.SamplerLogAnalysis  /home/ic/logs/tsampler.log /home/ic/logs/method.log /home/ic/logs/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


分析tprofiler.log采样文件,输出topmethod.logtopobject.log两文件,需要tmethod.log文件为输入

1.首先生成tmethod.log文件(必需等到profile.properties文件中endProfTime属性定义的时间点结束后,才能生成,因此需人工提前生成),由此命令

    java -cp tprofiler.jar com.taobao.profile.client.TProfilerClient 127.0.0.1 50000 flushmethod    

2.生成topmethod.logtopobject.log两文件,

 java -cp tprofiler.jar com.taobao.profile.analysis.ProfilerLogAnalysis /home/ic/logs/tprofiler.log /home/ic/logs/tmethod.log /home/ic/logs/topmethod.log /home/ic/logs/topobject.log

topmethod.log文件查看

[ic@linux-5f173 logs]$ more topmethod.log 

方法信息     执行次数    平均执行时间       全部执行时间 
com/tcs/server/mpush/connect/MessageReceivedHandler:received:13613022 2472
com/tcs/server/mpush/connect/Login:validateToken:56682 138
com/tcs/server/mpush/connect/Login:sendOfflineMessage:112102 20
com/tcs/server/mpush/push/TpsReportTask:run:133 2 4 7




topobject.log文件查看

方法信息 执行次数 平均执行时间 全部执行时间
sketch/compile/parser/node/PropertyExecutor:<init>:32 573 1 636
sketch/util/introspection/UberspectImpl:<init>:282 34 7 241
实验时,文件没有写入内容。分析代码是方法名必需包括<init>,才会写入。

tprofiler.log文件格式说明

线程ID 线程栈深度 方法ID 方法执行时间
13        2       14558       6

启动与停止tprofiler功能

java -cp tprofiler.jar com.taobao.profile.client.TProfilerClient 127.0.0.1 50000 stauts
java -cp tprofiler.jar com.taobao.profile.client.TProfilerClient 127.0.0.1 50000 stop
java -cp tprofiler.jar com.taobao.profile.client.TProfilerClient 127.0.0.1 50000 start







  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值