于是公司開始全面推進服務化進程,把團隊內(nèi)的大部分工程師主要精力全部都集中到服務化中。服務化可以讓每個工程師僅在自己負責的子項目中進行開發(fā),提高了開發(fā)的效率,但是服務化同時也帶來了其他問題:
針對以上開發(fā)中的煩惱,今天我們介紹一個針對高并發(fā)、低延遲應用設計的高性能 Java 性能監(jiān)控和統(tǒng)計工具——MyPerf4J。
MyPerf4J 為每個應用收集數(shù)十個監(jiān)控指標,所有的監(jiān)控指標都是實時采集和展現(xiàn)的。
下面是 MyPerf4J 目前支持的監(jiān)控指標列表:
RPS,Count,Avg,Min,Max,StdDev,TP50, TP90, TP95, TP99, TP999, TP9999, TP99999, TP100
圖片
HeapInit,HeapUsed,HeapCommitted,HeapMax,NonHeapInit,NonHeapUsed,NonHeapCommitted,NonHeapMax
圖片
CollectCount,CollectTime
圖片
Total,Loaded,Unloaded
圖片
MyPerf4J 采用 JavaAgent 配置方式,透明化接入應用,對應用代碼完全沒有侵入。
MyPerf4J-ASM.zip包:https://github.com/LinShunKang/Objects/blob/master/zips/CN/MyPerf4J-ASM-3.3.0-SNAPSHOT.zip?raw=true
在 JVM 啟動參數(shù)里加上以下兩個參數(shù)
-javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties
圖片
啟動應用,監(jiān)控日志輸出到 /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 啟動參數(shù)中去掉以下兩個參數(shù),重啟即可卸載此工具。
-javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties
https://github.com/LinShunKang/MyPerf4J
本文鏈接:http://www.tebozhan.com/showinfo-26-112758-0.html高性能、無侵入的 Java 性能監(jiān)控神器
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com