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

云智慧透視寶Java代碼性能監控實現原理

運維 服務器運維
Java本身已不僅僅只是一門面向對象的編程語言,而是由一系列計算機軟件和規范形成的技術體系,這個技術體系提供了完整的跨平臺開發與部署的支持,實現“一次編寫、到處運行”的目的。Java已經廣泛的應用于嵌入式、移動終端、企業服務器、大型機等各種場合。

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

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

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

  * Java程序設計語言

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

  * Class文件格式

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

云智慧透視寶Java代碼性能監控實現原理

  圖: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的執行體系中,由.Java源碼文件編譯后的.class字節碼文件,可以理解為中間語言。

云智慧透視寶Java代碼性能監控實現原理

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

云智慧透視寶Java代碼性能監控實現原理

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

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

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

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

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

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

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

云智慧透視寶Java代碼性能監控實現原理

  2、如何實際改變類行為

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

云智慧透視寶Java代碼性能監控實現原理

  * 常用的攔截探針

云智慧透視寶Java代碼性能監控實現原理

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

云智慧透視寶Java代碼性能監控實現原理

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

云智慧透視寶Java代碼性能監控實現原理

  * 該業務模型對應的行為

云智慧透視寶Java代碼性能監控實現原理

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

云智慧透視寶Java代碼性能監控實現原理

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

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

云智慧透視寶Java代碼性能監控實現原理

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

云智慧透視寶Java代碼性能監控實現原理

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

云智慧透視寶Java代碼性能監控實現原理

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

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

云智慧透視寶Java代碼性能監控實現原理

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

云智慧透視寶Java代碼性能監控實現原理

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

云智慧透視寶Java代碼性能監控實現原理

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

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

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

云智慧透視寶Java代碼性能監控實現原理

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

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

云智慧透視寶Java代碼性能監控實現原理

  端到端性能監控示意圖

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

責任編輯:路途 來源: 云智慧
相關推薦

2015-11-17 18:06:22

云智慧PHP應用性能

2015-12-11 11:49:19

java

2015-05-07 13:11:22

透視寶云智慧

2015-05-19 21:25:13

云智慧透視寶應用性能管理

2015-04-30 13:21:29

IaaS平臺性能云智慧監控寶

2015-05-07 14:06:31

云智慧監控寶IaaS平臺

2014-12-29 10:33:00

2015-12-11 11:39:15

.net代碼

2015-12-17 17:59:19

云智慧

2015-03-21 06:11:48

透視寶云智慧

2015-05-11 13:20:18

云智慧透視寶

2015-09-15 15:41:09

監控寶Docker

2014-09-16 13:33:50

大數據

2015-09-21 15:39:16

云智慧

2014-06-17 15:33:47

監控寶

2015-12-11 14:02:02

php應用

2016-05-11 13:54:28

云計算監控

2015-05-22 13:33:23

云智慧“創新中國”春季峰會

2015-10-21 16:31:40

云智慧

2016-07-14 16:15:02

大數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美激情国产精品 | 久干网| 麻豆久久久久久 | 国产精品美女久久久久久免费 | 男女视频在线观看 | 91一区二区 | 国产福利91精品一区二区三区 | 91成人在线视频 | 中文字幕av在线 | 亚洲欧美国产视频 | 欧美精品啪啪 | 精品久久久久久久久久久久 | 国产乱码精品一区二区三区忘忧草 | 久久亚洲国产精品日日av夜夜 | 国产黄色av网站 | 欧美日一区 | 青青伊人久久 | 91爱爱·com | 国产精品自拍视频 | 国产人免费人成免费视频 | 中文字幕日韩欧美一区二区三区 | 欧美日韩亚洲系列 | 成人一区二区三区在线观看 | 国产成视频在线观看 | 久久综合九色综合欧美狠狠 | 日韩中字幕 | 国产精品视频偷伦精品视频 | 国户精品久久久久久久久久久不卡 | 色伊人 | 亚洲精品久久久久久下一站 | 中文字幕日韩一区 | 精品久久久久久久 | 免费看一级毛片 | 曰批视频在线观看 | 中国一级特黄真人毛片 | 国产大学生情侣呻吟视频 | 国外成人免费视频 | 久久99久久98精品免观看软件 | 天天久 | 国产成人精品a视频一区www | 另类一区 |