文章出處

說明:本文的小貼士是針對jprofiler8的,其他版本上可能有不適用的地方

貼士一:使用jpenable監控,無需增加jvm參數和重啟

  • jprofiler8服務端監控的時,有四種方式,主要為需要增加jvm參數和不需要增加jvm參數,離線模式和非離線模式,其中最簡單的使用方式為:直接執行jprofiler8/bin/下面的jpenable,選擇要監控的應用程序的pid,指定端口號

服務器執行如下:

qaperf@classb:~/perftest/jprofiler8/bin$ ./jpenable Connecting to org.apache.catalina.startup.Bootstrap start [14007] ... Please select the profiling mode: GUI mode (attach with JProfiler GUI) [1, Enter] Offline mode (use config file to setprofiling settings) [2]1Please enter a profiling port [31757]8849You can now use the JProfiler GUI to connect on port 8849

四種方式對比

 

貼士二:設置sampling或instrument采集模式

 

  •      jprofiler客戶端連接時,可以設置監控方式,其中在Method clall recording中有      定制監控方法分為,instrumentation方式和sampling方式

    • instrumentation(注入)方式,是指在方法中注入字節碼,記錄監控信息,優點,結果更準確真實,監控的數據更多,包含調用次數等,缺點:性能開銷大

    • sampling(采樣)方式,是指,通過額外的線程,周期性的采集其他線程的執行信息,jprofiler8中默認的采集間隔為5ms(visualVM中默認的采樣時間為100ms),優點:開銷小;缺點:無法采集調用次數等信息,且對于執行時間短且調用頻率高的接口存在采集遺漏的情況

 

 

貼士三:設置CPU Profiling的統計時間類型    

  • Cpu Profiling,統計方法的執行時間有兩種:

    • 一種:Elapsed time:(wall clock time),統計的是從方法進入到離開的時間,這種統計方式簡單,開銷小,但是統計出來的時間可能比真實的CPU時間長

    • 一種:Estimated CPU time:(CPU time)真正的CPU時間,開銷大

 

 

貼士四:CPU監控之Call Tree層的監控點      

 

  • 右鍵,通過view settings可以設置顯示的數據內容,該圖片上包含了總時間、inherent time(即該方法的執行時間減去節點的執行時間)、執行次數、對應的類和方法

  • 層級展開,同故宮百分比可以看到消耗CPU的比例,這個接口中,freemarker消耗CPU約為70%以上,為最消耗CPU的方法

  • 方法前面的圖標,綠色的m表示method,如果通過上方的Aggregation level選擇Class or Package,會對應變成紫色的C或者黃色的P;紅色的箭頭表示Servlets,圓球表示browser,即對應url;如果遇到其他的一些看不懂的圖標可以參見jprofiler的help文檔,非常的全面和細致

 

 

貼士五:CPU監控之hot spot的使用                 

 

  • 點擊host spot 可以查看當前的熱點方法,找到是哪些方法最消耗CPU

  • 其中Filter classes這兒有個設置,默認情況下是 show separately,是每個方法獨立的時間統計,不包含調用關系,推薦使用Add to calling class,這個是包含所調用方法時間的統計,這個更能從業務上看到是因為什么導致的CPU消耗高

  • 點擊+號展開熱點方法,可以看到是哪些更上層的方法調用了它

 

 

 

 

貼士六:CPU監控之動態修改監控配置  

 

  • Profiling setting

  • 監控過程中,可以通過點擊session setting 實時調整監控配置

  • 設置好后,點擊Apply now可以立刻應用到當前監控中

 

 

 

 

使用精華總結

 

  1. 推薦使用jpenable的形式鏈接遠程服務

  2. 推薦不改變jprofiler的默認配置方式

  3. CPU監控使用hot spot時,推薦查看下Add to calling class的統計結果,方便理解

  4. visualVm也是通過sampling的方式進行CPU Profiling分析的,但是這種方式有個弊端:當存在某些接口執行時間較短且高頻繁調用時,不易發現;而且采樣存在遺漏,統計的結果分析不很清楚,需要使用instrument的方式進行補充驗證。

 

 

 

安大叔說

我們都是烏龜,背負著責任和夢想,也曾怨憤,終有一天,你會發現,它們成了你唯一不離不棄的依靠

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()