前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >狂收 3K Star!一个高性能、无侵入的 Java 性能监控和统计工具,十分强悍!

狂收 3K Star!一个高性能、无侵入的 Java 性能监控和统计工具,十分强悍!

作者头像
Java技术栈
发布于 2023-09-06 05:28:00
发布于 2023-09-06 05:28:00
1.3K0
举报
文章被收录于专栏:Java技术栈Java技术栈

国内最强微服务框架,没有之一!

几乎覆盖 Spring Boot 所有操作! 2023 全新 Java 面试题(2500+)

背景 随着所在公司的发展,应用服务的规模不断扩大,原有的垂直应用架构已无法满足产品的发展,几十个工程师在一个项目里并行开发不同的功能,开发效率不断降低。 于是公司开始全面推进服务化进程,把团队内的大部分工程师主要精力全部都集中到服务化中。服务化可以让每个工程师仅在自己负责的子项目中进行开发,提高了开发的效率,但是服务化同时也带来了其他问题:

  • 无法知道每个服务的运行情况,例如,某一台服务它目前的 QPS 是多少?它的平均延迟是多少,99% 的延迟是多少,99.9% 的延迟又是多少?
  • 某一个接口响应时间慢,如何定位是哪个方法引起的?
  • 每个服务的负载是否均衡?
  • 当服务出现抖动时,如何判断是 DB、Cache 还是下游服务引起的?
  • DB 和 Cache 响应延迟是多少?
  • 如何评估服务的容量,随着服务的调用量越来越大,这个服务需要多少机器来支撑?什么时候应该加机器?

针对以上开发中的烦恼,今天我们介绍一个针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具——MyPerf4J 。 使用场景

  • 在开发环境中快速定位 Java 应用程序的性能瓶颈
  • 在生产环境中长期监控 Java 应用程序的性能指标

特性

  • 高性能: 单线程支持每秒 1000万次 响应时间的记录,每次记录只花费 73纳秒
  • 无侵入: 采用 JavaAgent 方式,对应用程序完全无侵入,无需修改应用代码
  • 低内存: 采用内存复用的方式,整个生命周期只产生极少的临时对象,不影响应用程序的GC
  • 高精度: 采用纳秒来计算响应时间
  • 高实时: 支持秒级监控,最低 1 秒!

监控指标 MyPerf4J 为每个应用收集数十个监控指标,所有的监控指标都是实时采集和展现的。 推荐一个开源免费的 Spring Boot 实战项目: https://github.com/javastacks/spring-boot-best-practice 下面是 MyPerf4J 目前支持的监控指标列表: Method RPS,Count,Avg,Min,Max,StdDev,TP50, TP90, TP95, TP99, TP999, TP9999, TP99999, TP100

Memory HeapInit,HeapUsed,HeapCommitted,HeapMax,NonHeapInit,NonHeapUsed,NonHeapCommitted,NonHeapMax

JVM GC CollectCount,CollectTime

JVM Class Total,Loaded,Unloaded

快速启动 MyPerf4J 采用 JavaAgent 配置方式,透明化接入应用,对应用代码完全没有侵入。 另外,如果你近期准备面试跳槽,建议在Java面试库小程序在线刷题,涵盖 2000+ 道 Java 面试题,几乎覆盖了所有主流技术面试题。 下载

  • 下载并解压 MyPerf4J-ASM.zip
  • 阅读解压出的 README 文件
  • 修改解压出的 MyPerf4J.properties 配置文件中 app_namemetrics.log.xxxfilter.packages.include 的配置值

MyPerf4J-ASM.zip包 :https://github.com/LinShunKang/Objects/blob/master/zips/CN/MyPerf4J-ASM-3.3.0-SNAPSHOT.zip?raw=true 配置 在 JVM 启动参数里加上以下两个参数 -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties 运行 启动应用,监控日志输出到 /path/to/log/method_metrics.log: MyPerf4J Method Metrics [2020-01-01 12:49:57, 2020-01-01 12:49:58] Method[6] Type Level TimePercent RPS Avg(ms) Min(ms) Max(ms) StdDev Count TP50 TP90 TP95 TP99 TP999 TP9999 DemoServiceImpl.getId2(long) General Service 322.50% 6524 0.49 0 1 0.50 6524 0 1 1 1 1 1 DemoServiceImpl.getId3(long) General Service 296.10% 4350 0.68 0 1 0.47 4350 1 1 1 1 1 1 DemoServiceImpl.getId4(long) General Service 164.60% 2176 0.76 0 1 0.43 2176 1 1 1 1 1 1 DemoServiceImpl.getId1(long) General Service 0.00% 8704 0.00 0 0 0.00 8704 0 0 0 0 0 0 DemoDAO.getId1(long) DynamicProxy DAO 0.00% 2176 0.00 0 0 0.00 2176 0 0 0 0 0 0 DemoDAO.getId2() DynamicProxy DAO 0.00% 2176 0.00 0 0 0.00 2176 0 0 0 0 0 0 卸载 在 JVM 启动参数中去掉以下两个参数,重启即可卸载此工具。 -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties 开源地址:github.com/LinShunKang/MyPerf4J

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MyPerf4J 针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具
MyPerf4J 为每个应用收集数十个监控指标,所有的监控指标都是实时采集和展现的。
用户3578545
2018/10/12
1.5K0
MyPerf4J 针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具
2.5K Star,一个高性能、无侵入的性能监控和统计工具!
修改 MyPerf4J.properties 配置文件中 app_name、metrics.log.xxx 和 filter.packages.include 的配置值
永恒君
2023/02/20
8380
2.5K Star,一个高性能、无侵入的性能监控和统计工具!
【分享】MPSoC VCU Ctrl-SW 2020.2 输出NV12的YUV文件
Xilinx提供超低延时编解码方案,并提供了全套软件。MPSoC Video Codec Unit提供了详细说明。其中的底层应用软件是VCU Control-Software(Ctrl-SW)。
hankfu
2021/05/18
6080
【分享】MPSoC VCU Ctrl-SW 2020.2 输出NV12的YUV文件
ZOJ2176 SpeedLimit 数学题
本文最后更新于 1170 天前,其中的信息可能已经有所发展或是发生改变。 // ZOJ2176 SpeedLimit 数学题.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<iostream> using namespace std; int main() { int N,i; cin >> N; while (N!=- 1) { int sum = 0; int **p = new int *[N]; for (i = 0;
Yuyy
2022/06/28
1530
了解这个TCP,你也能涨薪3K!
有一次去浦东的一家互联网公司面试java后端开发。当天下午聊了技术、部门经理、HR,然后让回去等通知。当天晚上HR打电话过来聊薪资,巴拉巴拉说了一堆什么公司制度啦,这个年限只能匹配这个薪资,给的薪水比预先的低了2K,于是也直接跟HR说了达不到预期,不想考虑。
三哥
2020/01/17
4910
了解这个TCP,你也能涨薪3K!
2.4K star,一个高性能、无侵入的Java性能监控和统计工具,有点东西!
随着所在公司的发展,应用服务的规模不断扩大,原有的垂直应用架构已无法满足产品的发展,几十个工程师在一个项目里并行开发不同的功能,开发效率不断降低。
Java技术江湖
2023/01/04
1.3K0
2.4K star,一个高性能、无侵入的Java性能监控和统计工具,有点东西!
2.5K Star一个针对高并发,低延迟应用设计的高性能 Java 性能监控和统计工具
MyPerf4J 采用 JavaAgent 配置方式,透明化接入应用,对应用代码完全没有侵入。
开源日记
2023/03/10
3910
2.5K Star一个针对高并发,低延迟应用设计的高性能 Java 性能监控和统计工具
GitHubDaily 周报第 95 期
一款基于 React 和 MusicKit 实现的 Apple Music 非官方开源版,在线体验:https://musi.sh/
GitHubDaily
2019/03/26
4770
GitHubDaily 周报第 95 期
聊聊klog的header
如果设置klog的skip_headers为true,则其l.skipHeaders为true,则不会格式化并输出header信息。
code4it
2020/12/29
9410
聊聊klog的header
话题 | 如何看待索尼公司提出一种新的大规模分布式训练方法,在224秒内成功训练 ImageNet?
@ 依耶塔•朱丽 提问:如何看待索尼公司提出一种新的大规模分布式训练方法,在224秒内成功训练 ImageNet?
AI研习社
2018/12/14
4590
推荐看看这 10+ 个牛逼且实用的开源项目~~
照例,小妹花了点时间整理了一下2022年12月分享过的牛逼实用项目,方便大家进行查看和收藏!
永恒君
2023/02/20
2.1K0
推荐看看这 10+ 个牛逼且实用的开源项目~~
一次假期故障引发的性能优化思考
在假期某个夜黑风高的晚上,商家正在直播间如火如荼的做着直播,突然间屏幕卡顿,随后屏幕上出现大大的“404”,紧接着大量的客诉、告警扑面而来。好在有赞教育的技术团队响应及时,再经过很短时间的问题分析后,迅速的恢复了系统,保障了商家直播顺利进行。这故障到底是怎么产生的呢?经排查是因为在流量高峰时,系统在性能、可用性方面存在不足导致的。那当时你们是怎么处理的呢?接下来,我会重点从性能优化这块出发,先普及下性能优化的基本概念,然后再简述下常用的性能优化手段,最后给出这个故障我们当时的应对之道。
测试开发社区
2020/10/19
4560
一次假期故障引发的性能优化思考
go: 高性能序列化,反序列化
使用msgpack库可以很方便的做到。 package main import ( "fmt" "log" "github.com/vmihailenco/msgpack/v5" ) func main() { tp := new(TStruct) tp.M = map[string]string{ "hello": "hi", } tp.Data = []byte("hello world") b, err := ms
超级大猪
2021/04/23
1.3K0
使用阈值调优改进分类模型性能
阈值调优是数据科学中一个重要且必要的步骤。它与应用程序领域密切相关,并且需要一些领域内的知识作为参考。在本文中将演示如何通过阈值调优来提高模型的性能。
deephub
2022/11/11
7390
使用阈值调优改进分类模型性能
MyPerf4J 针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具
MyPerf4J 为每个应用收集数十个监控指标,所有的监控指标都是实时采集和展现的。
用户3578545
2018/10/12
9980
MyPerf4J 针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具
机器学习: 性能度量
在机器学习中,性能度量主要体现在三个指标: 查准率(P)、查全率(R)、F1 。
JNingWei
2018/09/28
6720
learning:NAT-ED两种配置模式
本文主要描述VPP nat插件在NAT44-ed的两种配置场景路由前Nat和路由后nat的转发流程区别及配置差异。两种模式基本组网配置如下:
dpdk-vpp源码解读
2023/01/04
2.1K0
learning:NAT-ED两种配置模式
GPU演义(History of the Modern Graphics Processor)
Techspot有关GPU非常翔实的历史记录,我花了大半个周末才读了一遍。行业的趋势,公司的沉浮,技术的变革都尽在其中,有些笔者还是亲身经历见证者,令人唏嘘不已。
Linux阅码场
2021/04/22
8480
白给的性能不要?cvpr2021-Diverse branch block
本文是继前作ACNet的又一次对网络结构重参数化的探索,我们设计了一个类似Inception的模块,以多分支的结构丰富卷积块的特征空间,各分支结构包括平均池化,多尺度卷积等。最后在推理阶段前,把多分支结构中进行重参数化,融合成一个主分支。这样能在相同的推理速度下,“白嫖”模型性能
BBuf
2021/04/16
9430
高性能网络编程3----TCP消息的接收
这篇文章将试图说明应用程序如何接收网络上发送过来的TCP消息流,由于篇幅所限,暂时忽略ACK报文的回复和接收窗口的滑动。
bear_fish
2018/09/20
1.2K0
高性能网络编程3----TCP消息的接收
推荐阅读
相关推荐
MyPerf4J 针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档