成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java代碼性能監控實現原理

企業動態
Java本身已不僅僅只是一門面向對象的編程語言,而是由一系列計算機軟件和規范形成的技術體系,這個技術體系提供了完整的跨平臺開發與部署的支持,實現“一次編寫、到處運行”的目的。

一、Java平臺體系及應用場景

從1995年Sun Microsystems公司正式推出Java,到2006年時Sun公司將其開源,迄今為止已經有了20年的歷史。Java本身已不僅僅只是一門面向對象的編程語言,而是由一系列計算機軟件和規范形成的技術體系,這個技術體系提供了完整的跨平臺開發與部署的支持,實現“一次編寫、到處運行”的目的。Java已經廣泛的應用于嵌入式、移動終端、企業服務器、大型機等各種場合。

Sun官方所定義的Java技術體系包括如下幾個組成部分:

* Java程序設計語言

* 各種硬件平臺上的Java虛擬機

* Class文件格式

* 來自商業機構和開源社區的第三方Java類庫

 

[[158854]]

 圖:Java技術體系組件圖

Java Virtual Machine(JVM)是Java體系的基礎,負責解釋、編譯執行.class文件形式的字節碼,同時負責內存管理、熱點代碼檢測和運行時編譯優化。正是由于有了虛擬機的基礎,才使Java實現了“一次編寫、到處運行”。Java這20年的發展,其實更是虛擬機的發展過程。期間經歷了Sun、BEA公司各自開發的虛擬機,2009年之后,ORACLE將這兩家公司收購,并將這些虛擬機取長補短、合二為一。目前還是開源的虛擬機OpenJDK,可供愛好者學習研究用。

   JRE部分是支持Java程序運行的標準環境。JDK是JRE的超集,包含JRE的一切,再加上工具如編譯器、調試器等。

二、Java性能監控需求

對于一個企業的應用系統,大多數情況下,肯定是由多種編程語言開發的各種系統的集成。我們都非常關心系統的可用性、及時響應性、資源的消耗,比如CPU、內存、各種I/O、網路帶寬等消耗情況。對于這些問題的性能瓶頸點,我們一般可以歸納為外部服務(如第三方API)、資源讀寫、代碼異常。如果在發生這些問題時,能夠及時完整的抓拍記錄保留下來,那么對于我們解決問題將會提供充足的證據,解決問題會變的非常容易。

對于Java應用系統來說,JVM自身提供了相應的性能監控手段和工具,經常在出現問題后,比如內存泄漏或溢出時,我們會通過jmap命令導出堆的轉儲快照,利用相應的命令jhat或其他相應的第三方內存分析工具來分析對象的占用情況。

響應緩慢時,我們可能會用jstat監視命令、或jdk的可視化工具jconsole、visualvm來分析JVM的垃圾回收類型、回收頻率,來推測是否是垃圾回收導致的。有可能我們還要接著分析線程轉儲快照,通過jstack取出線程的棧快照,來分析是否有真死鎖、死循環導致的相應緩慢、資源負載高等情況。

當有問題出現時,許多開發人員可能都是比較盲目的用這些工具來試探性定位問題,而大多數情況下,這種試探會無功而返。因為這些分析工具主要是側重Java單方面的分析,比如該系統調用第三方API,如果第三方API有問題,是無法監控到的。還有像文件、DB資源的訪問也是是無法監控到的。

而且,只有對Java虛擬機機制較為熟悉的高級開發人員才能比較好的運用、理解這些工具,對于大多數普通Java開發人員來說,這些問題只會令他們束手無策。

像外部服務(如第三方API)、資源讀寫、代碼異常這些瓶頸點,需要通過代碼級別的監控才能直接、快速、有效的找到癥結所在。調用第三方API的耗時、資源訪問的耗時、代碼拋出的非預知異常,這些常見問題代碼監控完全能夠監控到,并能夠實時抓拍記錄,一旦有問題可以快速還原事故問題現場。通過代碼級別監控發現問題后,也可以在輔助利用虛擬機內置監控工具進行進一步的定位。

三、透視寶Java監控實現原理

圖:Java的執行模型

在Java的執行體系中,由.Java源碼文件編譯后的.class字節碼文件,可以理解為中間語言。

圖:透視寶Java監控實現原理

圖:透視寶Java監控實例運行圖

1、字節碼load至JVM時發生了什么

* 回調函數注冊完畢后,凡是當有任何的class文件即將被類加載器加載前,都 

  會執行回調函數transform,在此方法內實現的類改變操作。

* 實現的transform方法中,我們使用的是ASM字節碼操作框架,ASM從二進制

  形式的類文件中讀取、分析類的信息,然后修改改變類的行為。

* transform方法的基本代碼形式如下:

2、如何實際改變類行為

* 在依賴于ASM基礎之上,我們抽象出這樣的業務模型

* 常用的攔截探針

* 常用的運行時攔截處理器

* 支持的攔截定義過濾器規則

* 該業務模型對應的行為

定義攔截描述時,指定過濾攔截哪些類、哪些方法,然后,在這些行為的點上,可以埋入探針、處理器。重寫visitCode、visitInsn、visitMaxs分別實現方法進入、返回、異常的相關操作改寫。

四、透視寶Java監控部署流程

1、登錄云智慧透視寶官網:https://www.toushibao.com/ ,點擊頁面右上角導航的“免費試用”,正確填寫免費試用的申請信息后會彈出下面的對話框,同時激活郵件會自動發送到你的郵箱中,按照流程注冊帳號即可。

2、注冊成功后,登錄透視寶,點擊配置-應用,在配置頁面中下載安裝Smart Agent。安裝成功后,Smart Agent會根據系統配置自動獲取主機信息,大致兩分鐘后,您就可以在“主機→服務器”模塊中查看該服務器的CPU、內存、網卡、磁盤及進程等性能數據。

3、如果要監控應用運行時代碼、主機中服務和數據庫性能數據,您需要進一步安裝和配置Smart Agent提供的各種插件,這是因為Smart Agent實現了一種開放式的插件式結構,對每個運行時代碼、服務和數據庫的監控都是通過相應的插件來實現的。

Smart Agent在安裝完成后,加載過程中自動發現你的應用組件,如果沒有自動監測到Java環境,也可以手動添加Java Agent。如上圖所示,點擊“管理”入口,進入“插件管理”,點擊頁面下部的“添加服務”,選擇JavaAgent后,點擊“創建”。

創建完畢后,點擊“ON”。(該ON操作只是初始化用戶的信息,以便以后采集到的信息能夠正確的回傳給該用戶。)

以上都操作完后,在{smartagent的安裝路徑}/plugins,就會看到如下形式的

 

 在到{smartagent的安裝路徑}/plugins/JavaAgent_1442476463X1002x0/conf文件夾下,查看app.conf文件,看看該文件內的HostKey的值是否是如下類似的加密形式

 

以上情況,表明JavaAgent已經下載啟動初始化成功。

4、安裝JavaAgent至各種應用服務器上,如tomcat\jboss\weblogic。(該操作參考官網https://www.toushibao.com/即可)

5、只要啟動相應服務器,然后訪問您的應用url即可,該url對用的代碼執行情況即可呈現給您,一旦出現緩慢問題也一目了然。如下圖示意

五、透視寶Java代碼性能監控特點

在功能方面,透視寶無論是在Java,還是其他如.NET、PHP等主流語言的監控上,都包括:查看執行最慢的10個元素,包括元素執行次數、持續時長和占用時長百分比;查看HTTP請求參數,包括請求的響應狀態、鏈接頁面、具體的請求參數及返回結果;查看代碼執行堆棧的詳細樹狀信息,包括每個方法的計算時間、總耗時和被調用的次數,您能直接看到特殊標識的最慢方法;查看涉及SQL語句的總耗時排序,包括SQL執行總耗時、執行次數和具體的查詢語句;第三方API調用。

端到端性能監控示意圖

在性能方面,云智慧透視寶的JavaAgent代碼監控探針包,對用戶的性能影響到底有多大?從安裝包本身來看,它非常小,僅為1.5M。在不安裝Java探針包和安裝Java探針包,分別運行應用。經過測試對比,CPU使用率差值、內存消耗差值、TPS差值均在5%以內。 

責任編輯:李英杰 來源: 51cto.com
相關推薦

2015-12-11 11:39:15

.net代碼

2015-10-12 17:08:14

云智慧

2015-12-11 14:02:02

php應用

2025-02-25 12:00:00

Java線程開發

2015-11-17 18:06:22

云智慧PHP應用性能

2015-09-15 15:41:09

監控寶Docker

2021-02-02 13:45:31

Vue代碼前端

2025-02-04 10:58:16

2024-09-04 08:09:51

2010-08-02 15:21:06

DelphiICMP

2012-04-11 15:41:48

JavaNIO

2017-03-22 14:23:58

Java HashMa實現原理

2024-08-19 02:35:00

模型量化深度學習

2024-09-06 07:55:42

2023-10-13 00:09:20

桶排序排序算法

2023-10-08 00:02:07

Java排序算法

2023-10-09 00:12:55

歸并排序數據

2011-06-28 13:56:43

JAVA

2024-09-13 16:47:06

模型量化AI

2012-07-27 09:47:34

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 2021狠狠干| 久久久www | 欧美日韩精品免费 | 青青久久av北条麻妃海外网 | 人人干人人看 | 天天玩天天操天天干 | 免费在线观看黄网站 | 91天堂 | 日韩av.com | 亚洲www| 国产小u女发育末成年 | 日韩精品免费在线观看 | 91精品久久久久久综合五月天 | 欧美专区在线 | 免费视频一区二区 | www.色综合| 成人国产精品视频 | 在线亚洲一区 | 日韩精品极品视频在线观看免费 | 亚洲精品国产电影 | 激情一区二区三区 | 一区二区三区福利视频 | 91久久久久 | 久久久久久久av | 我要看黄色录像一级片 | 亚洲精品久久久久久国产精华液 | 97色在线观看免费视频 | 日韩高清成人 | 国产日韩欧美在线观看 | 激情欧美一区二区三区中文字幕 | 狠狠干网| 天天激情综合 | 亚洲欧美在线视频 | 成人免费在线小视频 | 91久久精品国产91久久性色tv | 国产成人在线一区二区 | 中文字幕亚洲区 | 日本精品一区二区三区在线观看视频 | 色婷婷综合网站 | 91精品久久久久久久久99蜜臂 | 人人射人人插 |