两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種快照抓取方法和數(shù)據(jù)監(jiān)控工具的制作方法

文檔序號:6633185閱讀:257來源:國知局
一種快照抓取方法和數(shù)據(jù)監(jiān)控工具的制作方法
【專利摘要】本發(fā)明實施例公開了一種快照抓取方法和數(shù)據(jù)監(jiān)控工具,用于在Tomcat服務器中,準確的定位WEB應用發(fā)生間歇性響應變慢的時間點,及時在間歇性響應變慢時抓取到重要信息。本發(fā)明實施例方法包括:數(shù)據(jù)監(jiān)控工具獲取Tomcat服務器中WEB應用的繁忙線程數(shù),當確定該繁忙線程數(shù)大于預置線程閾值時,獲取該Tomcat服務器的HTTP請求快照和JVM線程快照。
【專利說明】一種快照抓取方法和數(shù)據(jù)監(jiān)控工具

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種快照抓取方法和數(shù)據(jù)監(jiān)控工具。

【背景技術(shù)】
[0002]部署在Tomcat服務器中的WEB應用,當應用發(fā)生阻塞或者前端有超過預計并發(fā)的訪問時,應用系統(tǒng)響應往往會變慢,這會影響用戶的使用,有時候這個影響會持續(xù)一段時間,有時候就短短幾秒。
[0003]目前,有監(jiān)控工具監(jiān)控系統(tǒng)的健康狀態(tài),當應用發(fā)生阻塞或者前端有超過預計并發(fā)的訪問時,該監(jiān)控工具發(fā)出警報,提示用戶該應用不可使用。
[0004]在實際應用中,僅僅反映應用的可用性狀況,并不能解決使得應用響應變慢的問題,在用戶的正式環(huán)境中,發(fā)生這種間歇性響應變慢時,如果不及時抓取到重要的信息,后續(xù)就很難定位問題,因為問題發(fā)生的時間很難確定,而靠人工分析也難以把握住時間點。


【發(fā)明內(nèi)容】

[0005]本發(fā)明實施例提供了一種快照抓取方法和數(shù)據(jù)監(jiān)控工具,用于在Tomcat服務器中,準確的定位WEB應用發(fā)生間歇性響應變慢的時間點,及時在間歇性響應變慢時抓取到重要信息。
[0006]一種快照抓取方法,包括:
[0007]數(shù)據(jù)監(jiān)控工具獲取Tomcat服務器的繁忙線程數(shù);
[0008]當確定所述繁忙線程數(shù)大于預置線程閾值時,所述數(shù)據(jù)監(jiān)控工具獲取所述Tomcat服務器的HTTP請求快照和JVM線程快照。
[0009]一種數(shù)據(jù)監(jiān)控工具,包括:
[0010]線程獲取模塊,用于獲取Tomcat服務器的繁忙線程數(shù);
[0011]快照獲取模塊,用于當確定所述線程獲取模塊獲取的繁忙線程數(shù)大于預置線程閾值時,獲取所述Tomcat服務器的HTTP請求快照和JVM線程快照。
[0012]從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點:當確定繁忙線程數(shù)大于預置線程閾值時,獲取該Tomcat服務器的HTTP請求快照和JVM線程快照。繁忙線程數(shù),表示實際正在處理HTTP請求業(yè)務的線程數(shù),一般狀況下,繁忙線程數(shù)可能比較低,當發(fā)生瞬間訪問量增大或者系統(tǒng)發(fā)生阻塞時,繁忙線程數(shù)就會增加,有時可能突然增加很大,有時可能持續(xù)增大,這時,系統(tǒng)的響應就會變慢,導致間歇性響應變慢,這樣,設置一個預置線程閾值,當超過預置線程閾值時,數(shù)據(jù)監(jiān)控工具就抓取JVM線程快照,同時抓取Tomcat服務器中的HTTP請求快照,這樣就準確的定位了 WEB應用發(fā)生間歇性響應變慢的時間點,抓到HTTP請求內(nèi)容的快照,同時又抓住了 JVM線程的快照這兩個重要信息,HTTP請求表示要做什么,JVM線程表示實際在做什么,將這兩個重要信息結(jié)合,可以很方便的確定出是因為什么原因?qū)е碌拈g歇性響應變慢。

【專利附圖】

【附圖說明】
[0013]圖1為本發(fā)明實施例中快照抓取方法一個流程示意圖;
[0014]圖2為本發(fā)明實施例中快照抓取方法另一個流程示意圖;
[0015]圖3為本發(fā)明實施例中獲取第一組件的數(shù)據(jù)一個實例示意圖;
[0016]圖4為本發(fā)明實施例中獲取JVM線程快照的組件一個實例示意圖;
[0017]圖5為本發(fā)明實施例中獲取HTTP請求快照的組件一個實例示意圖;
[0018]圖6為本發(fā)明實施例中HTTP請求快照一個實例示意圖;
[0019]圖7為本發(fā)明實施例中JVM線程快照一個實例示意圖;
[0020]圖8為本發(fā)明實施例中數(shù)據(jù)監(jiān)控工具一個結(jié)構(gòu)示意圖;
[0021]圖9為本發(fā)明實施例中數(shù)據(jù)監(jiān)控工具另一個結(jié)構(gòu)示意圖。

【具體實施方式】
[0022]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0023]此處在本發(fā)明的描述中使用的術(shù)語是用于描述特定實施例的目的并且不旨在作為對本發(fā)明的限制。
[0024]術(shù)語“Tomcat 服務器”是 Apache 軟件基金會(Apache Software Foundat1n)的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成,Tomcat服務器是一個免費的開放源代碼的Web應用服務器,基于JMX的服務器全面監(jiān)視及Web程序管理。
[0025]術(shù)語“JMX(JavaManagement Extens1ns, Java 管理擴展)”是一個為應用程序、設備、系統(tǒng)等植入管理功能的框架。JMX可以跨越一系列異構(gòu)操作系統(tǒng)平臺、系統(tǒng)體系結(jié)構(gòu)和網(wǎng)絡傳輸協(xié)議,靈活的開發(fā)無縫集成的系統(tǒng)、網(wǎng)絡和服務管理應用?!?br> [0026]術(shù)語“WEB應用”表示一種可以通過網(wǎng)頁Web訪問的應用程序。
[0027]術(shù)語“繁忙線程數(shù)”表示Tomcat服務器中實際正在處理具體事務的HTTP線程的數(shù)目。相應的,還有Tomcat服務器中的“線程總數(shù)”,表示Tomcat服務器中可以使用的線程數(shù)目,Tomcat服務器中繁忙線程數(shù)不能超過它的線程總數(shù)。
[0028]術(shù)語“預置線程閾值”為預設的線程閾值,其可以根據(jù)Tomcat服務器中的線程總數(shù)來設定,例如設定為線程總數(shù)的1/2、3/4,或者4/5等,還可以根據(jù)Tomcat服務器正常運行一般需要的線程數(shù)來設定,例如設定為50個、100個、130個等,還可以有很多的設定方式,保證其不超過線程總數(shù)且能滿足Tomcat服務器中WEB應用的正常使用,具體的設定方式,此處不作限定。
[0029]術(shù)語“ JVM線程快照”表示當前所有JVM正在執(zhí)行與已經(jīng)執(zhí)行過的方法調(diào)用序列的一個集合,各個線程執(zhí)行不同的方法調(diào)用,各個線程采用線程序列號進行區(qū)分,JVM線程快照里既包含了當前正在執(zhí)行的方法調(diào)用,也包含了該線程完成前的所有歷史方法調(diào)用,通過一個JVM線程快照,可以知道一個線程從開始到當前都執(zhí)行了什么方法調(diào)用。其中,術(shù)語“JVM”是Java Virtual Machine (Java虛擬機)的縮寫,JVM是一種用于計算設備的規(guī)范,它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。
[0030]術(shù)語“Http請求快照”表示當前所有訪問Tomcat服務器的Http請求的一個集合,其中包含有Http請求的內(nèi)容。
[0031]請參閱圖1,本發(fā)明實施例中快照抓取方法一個實施例包括:
[0032]101、數(shù)據(jù)監(jiān)控工具獲取Tomcat服務器的繁忙線程數(shù);
[0033]當Tomcat服務器運行時,數(shù)據(jù)監(jiān)控工具可以持續(xù)的實時獲取Tomcat服務器的繁忙線程數(shù)。
[0034]102、當確定所述繁忙線程數(shù)大于預置線程閾值時,所述數(shù)據(jù)監(jiān)控工具獲取所述Tomcat服務器的HTTP請求快照和JVM線程快照。
[0035]數(shù)據(jù)監(jiān)控工具獲取到Tomcat服務器的繁忙線程數(shù)后,會與預置線程閾值進行比較,當確定該繁忙線程數(shù)大于預置線程閾值時,該數(shù)據(jù)監(jiān)控工具獲取Tomcat服務器的HTTP請求快照和JVM線程快照。
[0036]該HTTP請求快照中包含有當前訪問Tomcat服務器的Http請求的內(nèi)容,表示需要運行在Tomcat服務器上的WEB應用執(zhí)行什么操作,JVM線程快照中包含有JVM正在執(zhí)行與已經(jīng)執(zhí)行過的方法調(diào)用序列,表示該運行在Tomcat服務器上的WEB應用執(zhí)行了什么操作。
[0037]可以理解的是,該預置線程閾值應該設定在不超過線程總數(shù)且能滿足Tomcat服務器上的WEB應用的正常使用的范圍內(nèi),若預置線程閾值設置合理,當繁忙線程數(shù)大于預置線程閾值時,即表示Tomcat服務器上的WEB應用瞬間響應量變大,或者系統(tǒng)發(fā)生阻塞,即將進入響應變慢的狀態(tài),此時獲取HTTP請求快照和JVM線程快照正好可以獲取到使得響應變慢的原因的重要信息。
[0038]本發(fā)明實施例中當確定繁忙線程數(shù)大于預置線程閾值時,獲取該Tomcat服務器的HTTP請求快照和JVM線程快照。繁忙線程數(shù),表示實際正在處理HTTP請求業(yè)務的線程數(shù),一般狀況下,繁忙線程數(shù)可能比較低,當發(fā)生瞬間訪問量增大或者系統(tǒng)發(fā)生阻塞時,繁忙線程數(shù)就會增加,有時可能突然增加很大,有時可能持續(xù)增大,這時,系統(tǒng)的響應就會變慢,導致間歇性響應變慢,這樣,設置一個預置線程閾值,當超過預置線程閾值時,數(shù)據(jù)監(jiān)控工具就抓取JVM線程快照,同時抓取TOMCAT服務器中的HTTP請求快照,這樣就準確的定位了 WEB應用發(fā)生間歇性響應變慢的時間點,抓到HTTP請求內(nèi)容的快照,同時又抓住了 JVM線程的快照這兩個重要信息,HTTP請求表示要做什么,JVM線程表示實際在做什么,將這兩個重要信息結(jié)合,可以很方便的確定出是因為什么原因?qū)е碌拈g歇性響應變慢。
[0039]下面對本發(fā)明實施例中的快照抓取方法進行具體描述,請參閱圖2,本發(fā)明實施例中快照抓取方法另一個實施例包括:
[0040]201、數(shù)據(jù)監(jiān)控工具通過JMX協(xié)議采集Tomcat服務器中第一組件的數(shù)據(jù),所述第一組件的數(shù)據(jù)中包括有所述Tomcat服務器的繁忙線程數(shù)和線程總數(shù);
[0041]當Tomcat服務器運行時,數(shù)據(jù)監(jiān)控工具通過JMX協(xié)議采集Tomcat服務器中第一組件的數(shù)據(jù),所述第一組件的數(shù)據(jù)中包括有所述Tomcat服務器的繁忙線程數(shù)和線程總數(shù)。
[0042]如圖3所示,為利用Java語言的軟件開發(fā)工具包((Java Development Kit, JDK)里面的一個工具Jconsole獲取該第一組件的數(shù)據(jù)的示例,其中屬性currentThreadsBusy的值表示當前的繁忙線程數(shù),屬性currentThreadCount的值表示當前的總線程數(shù)。
[0043]202、所述數(shù)據(jù)監(jiān)控工具根據(jù)所述線程總數(shù)確定預置線程閾值;
[0044]數(shù)據(jù)監(jiān)控工具得到該WEB應用的線程總數(shù)后,根據(jù)該線程總數(shù)確定預置線程閾值,該預置線程閾值不大于該線程總數(shù)。
[0045]分配給Tomcat服務器中WEB應用的線程總數(shù)是Tomcat等WEB容器一個很重要的資源池,用來響應瀏覽器發(fā)起的HTTP請求,一般線程總數(shù)的大小是可以配置的,具體配置多少要根據(jù)WEB應用的特征跟應用服務器硬件的處理能力而定。例如,一般對于8線程SG內(nèi)存的設備,將線程總數(shù)大小配置為200個較為合適。
[0046]繁忙線程數(shù)就是那些正在處理具體事務的HTTP線程,這個數(shù)越大,說明當前正在處理的事務越多,當達到一定數(shù)量的時候,硬件的計算資源可能會出現(xiàn)瓶頸,因此前端用戶就會有變慢的感覺,或者當發(fā)生什么特別的異常,如數(shù)據(jù)庫出現(xiàn)問題、網(wǎng)絡出現(xiàn)問題、磁盤1出現(xiàn)問題等,HTTP線程都可能出現(xiàn)大量等待,這時繁忙線程數(shù)可能快速上漲,這時候只有捕捉到快照才能定位問題出現(xiàn)在哪里,所以我們在這里就設置一個預置線程閾值,當超過預置線程閾值的時候就自動抓取快照,一般這個預置線程閾值設置為線程總數(shù)的一半較為合適;例如,配置線程總數(shù)為200,那么預置線程閾值可以設置為100,當然,根據(jù)具體的情況還可以有其他的設置方式,例如設置另外的數(shù)值,或者,按其他的百分比來設定,此處不做限定。
[0047]203、當確定所述繁忙線程數(shù)大于預置線程閾值時,數(shù)據(jù)監(jiān)控工具通過JMX協(xié)議采集Tomcat服務器中第二組件的數(shù)據(jù),所述第二組件的數(shù)據(jù)中包括有HTTP請求數(shù)據(jù);
[0048]當確定該線程繁忙數(shù)大于預置線程閾值時,該數(shù)據(jù)監(jiān)控工具通過JMX協(xié)議采集Tomcat服務器中第二組件的數(shù)據(jù),該第二組件的數(shù)據(jù)中包括有HTTP請求數(shù)據(jù);
[0049]如圖4所示,為利用Java語言的軟件開發(fā)工具包((Java Development Kit,JDK)里面的一個工具Jconsole獲取該第二組件的數(shù)據(jù)的示例,其中,第二組件下文件夾RequestProcessor中即記錄了 Tomcat服務器中響應各HTTP請求的線程,每個對象中包含有具體的HTTP請求的內(nèi)容。
[0050]204、當確定所述繁忙線程數(shù)大于預置線程閾值時,數(shù)據(jù)監(jiān)控工具通過JMX協(xié)議采集Tomcat服務器中第三組件的數(shù)據(jù),所述第三組件的數(shù)據(jù)中包括有JVM線程數(shù)據(jù);
[0051]當確定所述繁忙線程數(shù)大于預置線程閾值時,數(shù)據(jù)監(jiān)控工具通過JMX協(xié)議采集Tomcat服務器中第三組件的數(shù)據(jù),所述第三組件的數(shù)據(jù)中包括有JVM線程數(shù)據(jù);
[0052]如圖5所示,為利用Java語言的軟件開發(fā)工具包((Java Development Kit,JDK)里面的一個工具Jconsole獲取該第三組件的數(shù)據(jù)的示例,其中,通過該第三組件Threading即可得到Tomcat服務器的JVM線程數(shù)據(jù)。
[0053]可以理解的是,步驟204可以在步驟203之前執(zhí)行,可以在步驟203之后執(zhí)行,也可以與步驟203同時執(zhí)行,此處不作限定。
[0054]205、所述數(shù)據(jù)監(jiān)控工具根據(jù)所述HTTP請求數(shù)據(jù)生成所述Tomcat服務器的HTTP請求快照,根據(jù)所述JVM線程數(shù)據(jù)生成所述Tomcat服務器的JVM線程快照。
[0055]該數(shù)據(jù)監(jiān)控工具得到Tomcat服務器的HTTP請求數(shù)據(jù)后,可以根據(jù)該HTTP請求數(shù)據(jù)生成HTTP請求快照,得到Tomcat服務器的JVM線程數(shù)據(jù)后,可以根據(jù)該JVM線程數(shù)據(jù)生成JVM線程快照。
[0056]可以理解的是,該JMX線程數(shù)據(jù)記錄了實際執(zhí)行的操作,該HTTP請求數(shù)據(jù)記錄了請求執(zhí)行的操作。
[0057]206、根據(jù)所述HTTP請求快照和JVM線程快照,分析所述Tomcat服務器中WEB應用的性能。
[0058]該數(shù)據(jù)監(jiān)控工具得到HTTP請求快照和JVM線程快照后,根據(jù)該HTTP請求快照和JVM線程快照,分析該Tomcat服務器中WEB應用的性能。
[0059]可以理解的,對該HTTP請求快照和JVM線程快照的分析,可以由人工(例如開發(fā)人員)來完成,也可以設定標準的流程,由設備來自動完成,此處不作限定。
[0060]下面舉例對采用人工方式根據(jù)HTTP請求快照和JVM線程快照分析WEB應用的性能進行說明:
[0061 ] 如圖6所示,為截取到的一個HTTP請求快照的示例,假設該快照名為:中間件主機22_HttpRequestTrace_20130715163001.html ;
[0062]如圖7所示,為截取到的一個JVM線程快照的示例,假設該快照名為:
[0063]中間件主機22_ThreadTrace_20130715163001.html ;
[0064]開發(fā)人員發(fā)現(xiàn)該HTTP請求快照(中間件主機22_HttpRequestTrace_20130715163001.html)中存在大量的對目標地址 http://oa.test,cn//j_acegi_security_check進行的訪問,而出現(xiàn)大量類似請求說明某一功能可能出現(xiàn)大量訪問或者出現(xiàn)阻塞問題;
[0065]開發(fā)人員確定請求該目標地址http://oa.test, cn//j_acegi_security_check的線程名有:http-80-200,http-80-107, http-80-233, http-80-181 等;
[0066]開發(fā)人員選取其中一部分,以http-80-107為例,在線程快照中間件主機22_ThreadTrace_20130715163001.html 中搜索到同樣線程名 http-80-107 的線程堆棧,從堆棧的最后知道當前線程正在跟數(shù)據(jù)庫進行通信,如果發(fā)現(xiàn)不同的線程堆棧(例如http-80-200,http-80-233和http-80-181等的線程堆棧)都是處理類似的問題,這樣開發(fā)人員就能知道問題出現(xiàn)在什么地方了,比如如果大量出現(xiàn)調(diào)用數(shù)據(jù)庫的訪問方法,那說明數(shù)據(jù)庫發(fā)生阻塞了,開發(fā)人員就將分析轉(zhuǎn)向數(shù)據(jù)庫端分析,如果大量出現(xiàn)1讀取調(diào)用,那可能出現(xiàn)磁盤瓶頸等,還可以根據(jù)不同的情況,定位出其他很多問題,這里不再一一列舉。
[0067]可選的,也可以由設備自動的來對HTTP請求快照和JVM線程快照進行分析,具體的:當所述HTTP請求快照中對同一目標地址進行訪問的線程的數(shù)目超出預置數(shù)值時,所述數(shù)據(jù)監(jiān)控工具可以記錄所述對同一目標地址進行訪問的線程的線程名;所述數(shù)據(jù)監(jiān)控工具在所述JVM線程快照中查找記錄的所述線程名,確定所述對同一目標地址進行訪問的線程執(zhí)行的操作;根據(jù)所述對同一目標地址進行訪問的線程執(zhí)行的操作,確定所述繁忙線程數(shù)大于預置線程閾值時所述WEB應用存在的問題。而對同一目標地址進行訪問的線程執(zhí)行的操作與WEB應用存在的問題的對應關(guān)系,可以事先由開發(fā)人員存儲在該數(shù)據(jù)監(jiān)控工具上,也可以有該數(shù)據(jù)監(jiān)控工具從網(wǎng)絡上獲取,此處不做限定。
[0068]本發(fā)明實施例中,數(shù)據(jù)監(jiān)控工具可以通過Tomcat服務器中的第一組件來獲取該繁忙進程數(shù),使得得到繁忙進程數(shù)更加可靠,對系統(tǒng)變慢的時機把握的更加準確,進一步的,得到HTTP請求快照和JVM線程快照,根據(jù)這兩個快照,可以分析出Tomcat服務器中WEB應用的性能,能方便快速的定位系統(tǒng)變慢時的問題所在,進行分析時,如果只有一個快照,例如只有HTTP請求快照,因為線程中的信息沒有跟HTTP請求信息綁定,很難或者沒法知道請求的目標內(nèi)容是什么,難以定位問題,若只有JVM線程快照,由于信息龐雜,沒有目標,也很難定位出問題的根源,只有兩者結(jié)合,才能準確快速的定位出導致系統(tǒng)變慢的真正原因,從而方便對其進行解決。
[0069]下面對本發(fā)明實施例中的數(shù)據(jù)監(jiān)控工具進行描述,請參閱圖8,本發(fā)明實施例中數(shù)據(jù)監(jiān)控工具一個實施例包括:
[0070]線程獲取模塊801,用于獲取Tomcat服務器的繁忙線程數(shù);
[0071]快照獲取模塊802,用于當確定所述線程獲取模塊801獲取的繁忙線程數(shù)大于預置線程閾值時,獲取所述Tomcat服務器的HTTP請求快照和JVM線程快照。
[0072]本發(fā)明實施例中當確定繁忙線程數(shù)大于預置線程閾值時,快照獲取模塊802獲取該Tomcat服務器的HTTP請求快照和JVM線程快照。繁忙線程數(shù),表示實際正在處理HTTP請求業(yè)務的線程數(shù),一般狀況下,繁忙線程數(shù)可能比較低,當發(fā)生瞬間訪問量增大或者系統(tǒng)發(fā)生阻塞時,繁忙線程數(shù)就會增加,有時可能突然增加很大,有時可能持續(xù)增大,這時,系統(tǒng)的響應就會變慢,導致間歇性響應變慢,這樣,設置一個預置線程閾值,當超過預置線程閾值時,快照獲取模塊802就抓取JVM線程快照,同時抓取TOMCAT服務器中的HTTP請求快照,這樣就準確的定位了 WEB應用發(fā)生間歇性響應變慢的時間點,抓到HTTP請求內(nèi)容的快照,同時又抓住了 JVM線程的快照這兩個重要信息,HTTP請求表示要做什么,JVM線程表示實際在做什么,將這兩個重要信息結(jié)合,可以很方便的確定出是因為什么原因?qū)е碌拈g歇性響應變慢。
[0073]下面對本發(fā)明實施例中的數(shù)據(jù)監(jiān)控工具進行具體描述,請參閱圖9,本發(fā)明實施例中的數(shù)據(jù)監(jiān)控工具包括:
[0074]線程獲取模塊901,用于獲取Tomcat服務器的繁忙線程數(shù);
[0075]快照獲取模塊902,用于當確定所述線程獲取模塊901獲取的繁忙線程數(shù)大于預置線程閾值時,獲取所述Tomcat服務器的HTTP請求快照和JVM線程快照;
[0076]本實施例中,該線程獲取模塊901具體用于,通過JMX協(xié)議采集Tomcat服務器中第一組件的數(shù)據(jù),所述第一組件的數(shù)據(jù)中包括有所述Tomcat服務器的繁忙線程數(shù)和線程總數(shù);
[0077]該數(shù)據(jù)監(jiān)控工具還包括:
[0078]閾值確定模塊903,用于根據(jù)所述線程總數(shù)確定所述預置線程閾值,所述預置線程閾值不大于所述線程總數(shù);
[0079]可選的,該快照獲取模塊902具體包括:
[0080]第一獲取單元9021,用于通過JMX協(xié)議采集Tomcat服務器中第二組件的數(shù)據(jù),所述第二組件的數(shù)據(jù)中包括有HTTP請求數(shù)據(jù);
[0081]第二獲取單元9022,用于通過JMX協(xié)議采集Tomcat服務器中第三組件的數(shù)據(jù),所述第三組件的數(shù)據(jù)中包括有JVM線程數(shù)據(jù);
[0082]快照生成單元9023,用于根據(jù)所述HTTP請求數(shù)據(jù)生成所述Tomcat服務器的HTTP請求快照,根據(jù)所述JVM線程數(shù)據(jù)生成所述Tomcat服務器的JVM線程快照;
[0083]可選的,該數(shù)據(jù)監(jiān)控工具還可以包括:
[0084]分析模塊904,用于根據(jù)所述HTTP請求快照和JVM線程快照,分析所述Tomcat服務器中WEB應用的性能;
[0085]可選的,該分析模塊904具體可以包括:
[0086]記錄單元9041,用于當所述HTTP請求快照中對同一目標地址進行訪問的線程的數(shù)目超出預置數(shù)值時,記錄所述對同一目標地址進行訪問的線程的線程名;
[0087]查找單元9042,用于在所述JVM線程快照中查找記錄的所述線程名,確定所述對同一目標地址進行訪問的線程執(zhí)行的操作;
[0088]確定單元9043,用于根據(jù)所述對同一目標地址進行訪問的線程執(zhí)行的操作,確定所述繁忙線程數(shù)大于預置線程閾值時所述Tomcat服務器中WEB應用存在的問題。
[0089]本發(fā)明實施例中,線程獲取模塊901可以通過Tomcat服務器中的第一組件來獲取該繁忙進程數(shù),使得得到繁忙進程數(shù)更加可靠,對系統(tǒng)變慢的時機把握的更加準確,進一步的,快照獲取模塊902得到HTTP請求快照和JVM線程快照,根據(jù)這兩個快照,分析模塊904可以分析該WEB應用的性能,能方便快速的定位系統(tǒng)變慢時的問題所在,進行分析時,如果只有一個快照,例如只有HTTP請求快照,因為線程中的信息沒有跟HTTP請求信息綁定,很難或者沒法知道請求的目標內(nèi)容是什么,難以定位問題,若只有JVM線程快照,由于信息龐雜,沒有目標,也很難定位出問題的根源,只有兩者結(jié)合,才能準確快速的定位出導致系統(tǒng)變慢的真正原因,從而方便對其進行解決。
[0090]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0091]在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。
[0092]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0093]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0094]所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0095]以上所述,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種快照抓取方法,其特征在于,包括: 數(shù)據(jù)監(jiān)控工具獲取Tomcat服務器的繁忙線程數(shù); 當確定所述繁忙線程數(shù)大于預置線程閾值時,所述數(shù)據(jù)監(jiān)控工具獲取所述Tomcat服務器的HTTP請求快照和JVM線程快照。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)監(jiān)控工具獲取Tomcat服務器的繁忙線程數(shù)具體包括: 數(shù)據(jù)監(jiān)控工具通過JMX協(xié)議采集Tomcat服務器中第一組件的數(shù)據(jù),所述第一組件的數(shù)據(jù)中包括有所述Tomcat服務器的繁忙線程數(shù)和線程總數(shù); 所述方法還包括: 所述數(shù)據(jù)監(jiān)控工具根據(jù)所述線程總數(shù)確定所述預置線程閾值,所述預置線程閾值不大于所述線程總數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述數(shù)據(jù)監(jiān)控工具獲取所述Tomcat服務器的HTTP請求快照和JVM線程快照具體包括: 所述數(shù)據(jù)監(jiān)控工具通過JMX協(xié)議采集Tomcat服務器中第二組件的數(shù)據(jù),所述第二組件的數(shù)據(jù)中包括有HTTP請求數(shù)據(jù); 所述數(shù)據(jù)監(jiān)控工具通過JMX協(xié)議采集Tomcat服務器中第三組件的數(shù)據(jù),所述第三組件的數(shù)據(jù)中包括有JVM線程數(shù)據(jù); 所述數(shù)據(jù)監(jiān)控工具根據(jù)所述HTTP請求數(shù)據(jù)生成所述Tomcat服務器的HTTP請求快照,根據(jù)所述JVM線程數(shù)據(jù)生成所述Tomcat服務器的JVM線程快照。
4.根據(jù)權(quán)利要求1至3中任一項所述的方法,其特征在于,所述方法還包括: 根據(jù)所述HTTP請求快照和JVM線程快照,分析所述Tomcat服務器中WEB應用的性能。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述HTTP請求快照和JVM線程快照,分析所述Tomcat服務器中WEB應用的性能具體包括: 當所述HTTP請求快照中對同一目標地址進行訪問的線程的數(shù)目超出預置數(shù)值時,所述數(shù)據(jù)監(jiān)控工具記錄所述對同一目標地址進行訪問的線程的線程名; 所述數(shù)據(jù)監(jiān)控工具在所述JVM線程快照中查找記錄的所述線程名,確定所述對同一目標地址進行訪問的線程執(zhí)行的操作; 根據(jù)所述對同一目標地址進行訪問的線程執(zhí)行的操作,確定所述繁忙線程數(shù)大于預置線程閾值時所述Tomcat服務器中WEB應用存在的問題。
6.一種數(shù)據(jù)監(jiān)控工具,其特征在于,包括: 線程獲取模塊,用于獲取Tomcat服務器的繁忙線程數(shù); 快照獲取模塊,用于當確定所述線程獲取模塊獲取的繁忙線程數(shù)大于預置線程閾值時,獲取所述Tomcat服務器的HTTP請求快照和JVM線程快照。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)監(jiān)控工具,其特征在于,所述線程獲取模塊具體用于,通過JMX協(xié)議采集Tomcat服務器中第一組件的數(shù)據(jù),所述第一組件的數(shù)據(jù)中包括有所述Tomcat服務器的繁忙線程數(shù)和線程總數(shù); 所述數(shù)據(jù)監(jiān)控工具還包括: 閾值確定模塊,用于根據(jù)所述線程總數(shù)確定所述預置線程閾值,所述預置線程閾值不大于所述線程總數(shù)。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)監(jiān)控工具,其特征在于,所述快照獲取模塊具體包括: 第一獲取單元,用于通過JMX協(xié)議采集Tomcat服務器中第二組件的數(shù)據(jù),所述第二組件的數(shù)據(jù)中包括有HTTP請求數(shù)據(jù); 第二獲取單元,用于通過JMX協(xié)議采集Tomcat服務器中第三組件的數(shù)據(jù),所述第三組件的數(shù)據(jù)中包括有JVM線程數(shù)據(jù); 快照生成單元,用于根據(jù)所述HTTP請求數(shù)據(jù)生成所述Tomcat服務器的HTTP請求快照,根據(jù)所述JVM線程數(shù)據(jù)生成所述Tomcat服務器的JVM線程快照。
9.根據(jù)權(quán)利要求6至8中任一項所述的數(shù)據(jù)監(jiān)控工具,其特征在于,所述數(shù)據(jù)監(jiān)控工具還包括: 分析模塊,用于根據(jù)所述HTTP請求快照和JVM線程快照,分析所述Tomcat服務器中WEB應用的性能。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)監(jiān)控工具,其特征在于,所述分析模塊具體包括: 記錄單元,用于當所述HTTP請求快照中對同一目標地址進行訪問的線程的數(shù)目超出預置數(shù)值時,記錄所述對同一目標地址進行訪問的線程的線程名; 查找單元,用于在所述JVM線程快照中查找記錄的所述線程名,確定所述對同一目標地址進行訪問的線程執(zhí)行的操作; 確定單元,用于根據(jù)所述對同一目標地址進行訪問的線程執(zhí)行的操作,確定所述繁忙線程數(shù)大于預置線程閾值時所述Tomcat服務器中WEB應用存在的問題。
【文檔編號】G06F11/14GK104410671SQ201410614080
【公開日】2015年3月11日 申請日期:2014年11月3日 優(yōu)先權(quán)日:2014年11月3日
【發(fā)明者】徐霞, 楊健偉, 林殿興, 賈江兵 申請人:深圳市藍凌軟件股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
肇庆市| 金秀| 巴林左旗| 福泉市| 广德县| 夏河县| 台山市| 儋州市| 黄骅市| 阳西县| 金堂县| 高邑县| 城固县| 巫山县| 左权县| 乌鲁木齐县| 文成县| 大同市| 麻城市| 澄城县| 开江县| 莱西市| 邯郸县| 克东县| 淅川县| 江西省| 金塔县| 瓦房店市| 股票| 巧家县| 新晃| 江华| 扎兰屯市| 南澳县| 六盘水市| 白城市| 叙永县| 顺义区| 伊金霍洛旗| 尼勒克县| 鹿邑县|