整合 MyPerf4J 做Java性能监控和统计工具
快速启动MyPerf4J
MyPerf4J 采用 JavaAgent 配置方式,透明化接入应用,对应用代码完全没有侵入。
打包
项目地址:
https://github.com/LinShunKang/MyPerf4J
git项目到本地:
git clone git@github.com:LinShunKang/MyPerf4J.git
打包项目:
mvn clean package
配置
在 JVM 启动参数里加上以下两个参数
-javaagent:D:/workspqce/MyPerf4J/MyPerf4J-ASM-2.5.0.jar
-DMyPerf4JPropFile=D:/workspqce/MyPerf4J/myPerf4J.properties
其中,myPerf4J.properties的配置如下:
# 应用名称
AppName=MyPerf4JTest
# MetricsProcessor类型,0:以标准格式化结构输出到stdout.log 1:以标准格式化结构输出到磁盘 2:以InfluxDB LineProtocol格式输出到磁盘
MetricsProcessorType=1
# 配置各个Metrics日志的文件路径,可不配置
MethodMetricsFile=d:/data/logs/MyPerf4J/method_metrics.log
ClassMetricsFile=d:/data/logs/MyPerf4J/class_metrics.log
GCMetricsFile=d:/data/logs/MyPerf4J/gc_metrics.log
MemMetricsFile=d:/data/logs/MyPerf4J/memory_metrics.log
BufPoolMetricsFile=d:/data/logs/MyPerf4J/buf_pool_metrics
ThreadMetricsFile=d:/data/logs/MyPerf4J/thread_metrics.log
# 配置Record模式,可配置为accurate/rough
RecorderMode=accurate
# 配置时间片,单位为ms,最小1s,最大600s
MilliTimeSlice=10000
# 需要监控的package,可配置多个,用英文';'分隔
#IncludePackages=com.chinasofti.huateng.lz.qrcode.server.controller;
IncludePackages=com.mmzsit.controller;
# 不需要监控的package,可配置多个,用英文';'分隔
# ExcludePackages=com.chinasofti.huateng.lz.qrcode.server.config;
# 默认监控IncludePackages下的所有方法
# 不监控的方法:可配置多个方法名,用英文';'分隔
ExcludeMethods=upload
# 是否展示方法参数类型
ShowMethodParams=true
# 是否排除私有方法,true/false
ExcludePrivateMethod=true
# 通用的方法执行时间阈值,单位为ms
ProfilingTimeThreshold=1000
# 在一个时间片内,超过方法执行时间阈值的次数,仅在RecorderMode=accurate时有效
ProfilingOutThresholdCount=10
启动
2019-03-27 18:25:25.234 [MyPerf4J] WARN profilingParamFile is empty!
2019-03-27 18:25:25.330 [MyPerf4J] INFO
__ ___ ____ ______ __ __
/ |/ /_ __/ __ \___ _____/ __/ // / / /
/ /|_/ / / / / /_/ / _ \/ ___/ /_/ // /___ / /
/ / / / /_/ / ____/ __/ / / __/__ __/ /_/ /
/_/ /_/\__, /_/ \___/_/ /_/ /_/ \____/
/____/
2019-03-27 18:25:25.331 [MyPerf4J] INFO AbstractBootstrap doInitial() SUCCESS!!!
启动时出现的提示信息:WARN profilingParamFile is empty!可以不用理会,因为不影响使用。
运行
输出结果,输出到d:/data/logs/MyPerf4J/method_metrics.log
MyPerf4J Method Metrics [2019-03-27 18:24:20, 2019-03-27 18:24:30]
Method[1] Type RPS Avg(ms) Min(ms) Max(ms) StdDev Count TP50 TP90 TP95 TP99 TP999 TP9999 TP99999 TP100
FtpController.download() General 0 540.00 540 540 0.00 1 540 540 540 540 540 540 540 540
MyPerf4J Method Metrics [2019-03-27 18:24:30, 2019-03-27 18:24:40]
Method[1] Type RPS Avg(ms) Min(ms) Max(ms) StdDev Count TP50 TP90 TP95 TP99 TP999 TP9999 TP99999 TP100
FtpController.upload() General 0 467.00 467 467 0.00 1 467 467 467 467 467 467 467 467
整合 MyPerf4J 做Java性能监控和统计工具的更多相关文章
- java虚拟机(八)--java性能监控与故障处理工具
问题定位: 除了个人经验,知识,工具也是很重要的,通过数据进行问题分析,包括:运行日志.异常堆栈.GC日志.线程快照(threaddump/javacore文件 ).堆转储快照(heapdump/hp ...
- 关于 Java 性能监控您不知道的 5 件事,第 1 部分
责怪糟糕的代码(或不良代码对象)并不能帮助您发现瓶颈,提高 Java? 应用程序速度,猜测也不能帮您解决.Ted Neward 引导您关注 Java 性能监控工具,从5 个技巧开始,使用Java 5 ...
- 《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具
虚拟机性能监控与故障处理工具 详解 4.1 概述 本文参考的是周志明的 <深入理解Java虚拟机> 第四章 ,为了整理思路,简单记录一下,方便后期查阅. JDK本身提供了很多方便的JVM性 ...
- Linux下Java性能监控
Linux下Java性能监控 一.JVM堆内存使用监控 获取thread dump的3种方法: 1)使用$JAVA_HOME/bin/jcosole中的MBean,到MBean>com.sun. ...
- Java性能监控
Java性能监控 上次介绍了如何使用jvisualvm监控java,今天做进一步讲解!Java性能监控主要关注CPU.内存和线程. 在线程页中,点击线程Dump,可以生成threaddump日志,通过 ...
- JAVA性能监控与调优参考文档链接
JAVA性能监控与调优参考文档链接 jdk8工具集 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.htmlTroub ...
- java虚拟机之性能监控与故障处理工具
sun jdk性能监控与故障处理工具 jps: 可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一id. jstat: 用于监视虚拟机各种运行状态信息的命令航工具.它可 ...
- jvm性能监控与故障处理工具
jdk为我们提供了一系列的jvm性能监控和故障处理工具,在这里根据学习进度进行整理记录.便于之后查阅 1.jps 虚拟机进程工具 类似于Linux系统中的ps命令,用于查看虚拟机进程,常用的有以下功 ...
- JYM虚拟机性能监控与故障处理工具
虚拟机性能监控与故障处理工具 一.jps:虚拟机进程状况工具 常用指令 二.jstat:虚拟机统计信息监视工具 常用指令 三.jinfo:配置信息工具 四.jmap:Java内存映像工具 常用指令 五 ...
随机推荐
- 给Ubuntu18.04安装mac os主题
安装完的效果: 参考: https://linuxhint.com/gnome-tweak-tool-ubuntu-17-10/ ----------------------------------- ...
- hystrix基本配置项(2)
①配置HystrixCommand HystxixCommand支持如下的配置: GroupKey:该命令属于哪一个组,可以帮助我们更好的组织命令. CommandKey:该命令的名称 ThreadP ...
- RabbitMQ指南之一:"Hello World!"
为什么要使用MQ消息中间件?它解决了什么问题?关于为什么要使用消息中间件?消息中间件是如何做到同步变异步.流量削锋.应用解耦的?网上已经有很多说明,我这里就不再说明了,读者可以参考(https://w ...
- WebP 在减少图片体积和流量上的效果如何?MIP技术实践分享
作者 | Jackson 编辑 | 尾尾 不论是 PC 还是移动端,图片一直占据着页面流量的大头,在图片的大小和质量之间如何权衡,成为了长期困扰开发者们的问题.而 WebP 技术的出现,为解决该问题提 ...
- 『性能』List 和 HashSet 查找性能比较 (任何数据量的检索 从此只用 HashSet )
结论: 总数 50000 (5万): List 检索 5W次 耗时 23秒, HashSet 检索 5W次 耗时 0.01秒. 总数 5000 (5千): List 检索 5K次 耗时 0.16秒 ...
- Kubernetes集群部署史上最详细(一)Kubernetes集群安装
适用部署结构以及版本 本系列中涉及的部署方式和脚本适用于1.13.x和1.14,而且采取的是二进制程序部署方式. 脚本支持的部署模式 最小部署模式 3台主机,1台为k8s的master角色,其余2台为 ...
- 刨根问底:if 后怎么就可以跟对象,变量交换写法是语法糖吗?
1.万物皆可布尔 一般语言中的 if 语句语法是这样的: if (条件表达式){ 执行语句} 而在 Python 中,if 后面不仅可以是条件表达式,还可以是任意对象.例如: my_list = ...
- Linux V4L2之camera
一.硬件知识 1. 摄像头硬件结构和工作原理,如图1&图2 外部光线穿过lens镜头,经过红外滤光片后光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字 ...
- 号称“新至强,可拓展,赢当下”的Xeon可拓展处理器有多逆天?
目前企业数据中心正在发生重大变化,许多企业正在经历基于在线服务和数据的广泛转型.他们将这些数据用于功能强大的人工智能和分析应用程序,这些应用程序可以将其转化为改变业务的洞察力,然后推出可以使这些洞察力 ...
- css 选择器基础
有时在看别人代码时,看到一长串的选择器经常有点懵,今天来夯实一下基础 选择器有: 1.标签选择器 :就是HTML 中的标签 如<p> <h1> <body>等 2. ...