【入门篇】TProfiler工具使用
1、TProfiler下载与安装
第一步先去Github https://github.com/taobao/TProfiler下载源文件,接着将下载好的TProfiler-master.zip解压并打开文件夹,将dist下的TProfiler_1.0.1.zip再解压,最后将TProfiler_1.0.1中的profile.properties、lib/tprofiler-1.0.1.jar 拷贝出来,我们只需要这两个文件即可。
第二步我们看下profile.properties中的每个参数的含义。
第三步,在我们设置好profile.properties相关属性后,将这两个文件拷贝到本地/usr/local/tprofiler/目录下,同时添加jvm启动参数:
-javaagent:/usr/local/tprofiler-1.0.1.jar
-Dprofile.properties=/usr/local/tprofiler/profile.properties
然后启动相应的tomcat、weblogic等服务器,观察输出没有报错即可。
#基础的一些参数配置,一般使用默认即可
startProfTime = 9:00:00 开始profile的时间点
endProfTime = 23:00:00 结束profile的时间点
eachProfUseTime = 5 profile时间长度(单位秒)
eachProfIntervalTime = 50 两次profile的时间间隔(单位秒)
samplerIntervalTime = 20 两次采样的时间间隔(单位秒)
port = 30033 对外提供服务支持查询的端口号
debugMode = false 是否进入调试模式
needNanoTime = false 是否需要用纳秒记录时间
ignoreGetSetMethod = true 是否忽略采集get/set方法#下面三个日志的存放路径、名称可以自行设置
logFilePath = /usr/tprofiler/logs/logprofiler.log (profile log的存放位置)
methodFilePath = /usr/tprofiler/logs/logmethod.log (method log的存放位置)
samplerFilePath = /usr/tprofiler/logs/logsampler.log (sampler log的存放位置)#需要、不需要profile的包路径
excludeClassLoader = org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader 不注入的类加载器(分号分割),使用默认即可
includePackageStartsWith = com.alibaba.fastjson;com.fasterxml.jackson.databind;org.quartz;org.springframework (进行profile的类包名(分号分割),这里按需求,将项目中需要profile的包名入进来即可)
excludePackageStartsWith = com.taobao.sketch;org.apache.velocity;com.alibaba;com.taobao.forest.domain.dataobject 不进行profile的类包名(分号分割),使用默认即可
2、TProfiler远程操作
Java -cp /usr/local/tprofiler/tprofiler-1.0.1.jar com.taobao.profile.client.TProfilerClient [ip] [port] [command]
这个命令是用于查看TProfiler的运行情况,ip:TProfiler的机器ip,port:上面配置文件中的port,command:start、stop、status、flushmethod。
其中flushmethod是将运行过程中采集的数据输出到指定目录下。例如输出到/usr/tprofiler/logs/下,如配置文件中的logprofiler.log、logmethod.log、logsampler.log。
3、TProfiler本地数据统计
普通方法、线程统计命令
java -cp /usr/local/tprofiler/tprofiler-1.0.1.jar com.taobao.profile.analysis.SamplerLogAnalysis /usr/tprofiler/logs/logsampler.log /usr/tprofiler/logs/allmethod.log
/usr/tprofiler/logs/allthread.log 这条命令里,logsampler.log的路径在配置文件中指定,后面两个日志文件是分析统计后的日志输出路径,一个是所有方法的调用情况,另一个是所有线程的运行状态,从类名也可看出,就是对生成的sampler日志进行统计分析。
4、top 统计
java -cp /usr/local/tprofiler/tprofiler-1.0.1.jar com.taobao.profile.analysis.ProfilerLogAnalysis
#待分析的日志路径
/usr/tprofiler/logs/logprofiler.log /usr/tprofiler/logs/logmethod.log
#分析后输出日志
/usr/tprofiler/logs/topmethod.log /usr/tprofiler/logs/topobject.log
上面命令中的前两个参数是logprofiler.log、logmethod.log的路径,后面两个参数是分析后所得日志的输出路径。(其中:topmethod.log指调用次数最多的一些方法,topobject指调用次数最多的对象类)
调用该命令后,查看topmethod.log的结构如下:
Tables | 执行次数 | 平均执行时间 | 全部执行时间 |
---|---|---|---|
/lib/tpcache/mongodb/MongodbTemplate:getById:140 | 229 | 390 | 89364 |
/lib/tp/HttpClientTemplate:getForObject:92 | 255 | 39 | 9905 |
/api/module/CacheService:getVideoById:115 | 229 | 0 | 79 |
/api/module/comment/CommentService:getCommentList:130 | 226 | 0 | 74 |
/api/module/comment/dto/CommentListDto::93 | 2 | 3 | 6 |
/api/module/comment/CommentController:getCommentList:46 | 226 | 0 | 0 |
/lib/tpcache/cbase/MemcachedTemplate:getProtobuf:448 | 1 | 2 | 2 |
/lib/tp/comment/CommentTpDao:comment:67 | 255 | 0 | 1 |
参考:
http://blog.csdn.net/chen7253886/article/details/54091666
http://blog.csdn.net/defonds/article/details/52605670
http://blog.kinval.com/open/taobao-profiler.html
【入门篇】TProfiler工具使用相关推荐
- Java爬虫入门篇---Jsoup工具
Java爬虫入门篇---Jsoup工具 前言 准备工作 获取文本数据 获取页面中所有的图片 前言 pythoy的scrapy框架是大名鼎鼎,Jsoup则为Java框架的爬虫 准备工作 1.下载jsou ...
- envi 文件 生成mat_JVM 内存分析工具 MAT 的深度讲解与实践——入门篇
1. MAT 工具简介 MAT(全名:Memory Analyzer Tool),是一款快速便捷且功能强大丰富的 JVM 堆内存离线分析工具.其通过展现 JVM 异常时所记录的运行时堆转储快照(Hea ...
- AutoSAR系列讲解(入门篇)6.1-Vector的工具链简介
AutoSAR系列讲解(入门篇)6.1-Vector的工具链简介 Vector的工具链简介 一.PREEvision 二.vVIRTUALtarget 三.DaVinci 四.CANoe 五.CANa ...
- 不用编程超简单的自动化测试工具:Airtest安装使用入门篇
一.背景 很多刚入行或从其他行业转行做测试的同学,日复一日每天做点工已经点得疲惫和麻木,觉得做测试和在厂子里打螺丝没太大区别.也想着做一做自动化测试,奈何自己看着代码就头痛,当初就是因为不喜欢编程才选 ...
- 女友问粉丝过万如何庆祝,我发万字长文《保姆级大数据入门篇》感恩粉丝们支持,学姐|学妹|学弟|小白看了就懂
2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 粉丝破万了 新星计划申 ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次 ...
- SQL注入漏洞全接触--入门篇
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进 ...
- 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇
本节书摘来自华章出版社<Ansible权威指南 >一书中的第1章,第1.1节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第一篇 ...
- Python从入门到精通 - 入门篇 (下)
上一讲回顾:Python从入门到精通 - 入门篇 (上) 接着上篇继续后面两个章节,函数和解析式. 4 函数 Python 里函数太重要了 (说的好像在别的语言中函数不重要似的).函数的通用好处就不用 ...
- AI视觉组培训第二弹——入门篇
▌入门篇 由恩智浦赞助的AI视觉组,今年把人工智能应用在智能车竞赛中的难度由提高了一步.这里面最重要的部分就是,用人工智能的神经网络进行图片识别. 上一次培训,我们已经介绍了人工智能和神经网络 ...
最新文章
- 我的MYSQL学习心得(六) 函数
- webpack 优化笔记
- netbeans卸载 linux,NetBeans_6.1自己使用。(linux-ubuntu下)
- HINSTANCE和HANDLE的区别
- 【hive】——metastore的三种模式
- Ubuntu NFS搭建过程
- Android 5.1 - 状态栏充电标志问题
- 解决org.springframework.web.multipart.MaxUploadSizeExceededException报错问题
- python索引例子_Python实现带下标索引的遍历操作示例
- 在线CSS代码压缩美化工具
- nginx优化--突破十万并发
- tiny4412 串口驱动分析五 --- LDD3上TTY驱动程序源码
- java对象拷贝——PropertyUtils copyProperties 用法和性能
- Verilog——38译码器(包括仿真文件和约束文件的格式)
- windows下用linux系统,如何在Windows下使用Linux操作系统
- ZABBIX 3.0 使用详解
- 迷你考拉仓私人小仓库储物间出租,百米内的智能仓储!
- 启动TC的TAO窗口
- Swift不深入只浅出入门教程-孟祥月-专题视频课程
- 需要达到什么水平才能找到一份计算机实习?
热门文章
- r语言中怎样获得混淆矩阵
- linux qt 打印预览控件,Qt实现保存、浏览、预览、打印功能的示例代码
- 0005有意思的小题目
- 【2021年9月小峰子发给我的聊天】
- Thinkpad X1 Carbon 已插入未充电解决办法
- 【python数据分析实战】电商打折套路解析(1)—— 各个品牌都有多少商品参加了双十一活动?
- 安卓AS:简简单单就实现了一个qq登录界面
- PreferenceManager.getDefaultSharedPreferences(SettingsActivity.this);
- 卡尔曼滤波simulink模型_电池管理系统---Simulink源码/资料分享及Live 介绍
- vue中v-if和ref的冲突