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

[plain] view plain copy
[ic@linux-5f173 logs] pwd/home/ic/logs[ic@linux5f173logs] 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)19728org.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.log与topobject.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.log与topobject.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

[plain] view plain copy
方法信息 执行次数 平均执行时间 全部执行时间
[plain] view plain copy
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::32 573 1 636
sketch/util/introspection/UberspectImpl::282 34 7 241
实验时,文件没有写入内容。分析代码是方法名必需包括,才会写入。
tprofiler.log文件格式说明

[plain] view plain copy
线程ID 线程栈深度 方法ID 方法执行时间
13 2 14558 6
启动与停止tprofiler功能

[plain] view plain copy
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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值