專利名稱:一種單點業務性能的分析方法、裝置和系統的制作方法
技術領域:
本發明涉及通信技術領域,具體涉及一種單點業務性能的分析方法、裝置和系統。
背景技術:
單點業務性能的分析,指的是對該單點業務在客戶端或服務端的運行情況進行追蹤、收集和分析。通過對單點業務性能的分析,可以定位該單點業務的性能問題,從而使得程序員可以根據該性能問題及時作出修改,有利于提高單點業務的性能。在現有技術中,對單點業務性能的分析主要有三種,第一種是在oracle數據庫(甲骨文數據庫)層面上實現,主要通過會話級別打開SQL_trace (oracle數據庫中的一種SQL跟蹤手段)開關,收集SQL_trace文件來進行分析;一種是通過實例級別打開SQL_trace開關,收集SQL_trace文件來進行分析;另一種是通過oracle數據庫的事件管理器(Oracle Enterprise manager)工具來查找耗時的SQL語句來進行分析。在對現有技術的研究和實踐過程中,本發明的發明人發現,不管采用以上的哪種分析方法,都無法對客戶端和服務端進行聯查,不利于定位單點業務的性能問題,從而不利于改善單點業務的性能。
發明內容
本發明實施例提供一種單點業務性能的分析方法、裝置和系統,可以對客戶端和服務端進行聯查,精確地定位單點業務的性能問題。一種單點業務性能的分析方法,包括:確定需要分析的單點業務所對應的事件;根據所述事件獲取對應的客戶端遠程過程調用協議(RPC, Remote ProcedureCall Protocol)日志信息;根據客戶端RPC日志信息獲取對應的服務端RPC日志信息;根據所述客戶端RPC日志信息和服務端RPC日志信息分析所述單點業務的性能。一種單點業務性能的分析裝置,包括:確定單元,用于確定需要分析的單點業務所對應的事件;第一獲取單元,用于根據所述事件獲取對應的客戶端遠程過程調用協議RPC日志
信息;第二獲取單元,用于根據客戶端RPC日志信息獲取對應的服務端RPC日志信息;分析單元,用于根據所述客戶端RPC日志信息和服務端RPC日志信息分析所述單點業務的性能。一種企業資源計劃系統(ERP,Enterprise Resource Planning),包括本發明實施例提供的任一種單點業務性能的分析裝置。本發明實施例通過確定需要分析的單點業務所對應的事件,來獲取對應的客戶端RPC日志信息,然后再通過 客戶端RPC日志信息獲取到對應的服務端RPC日志信息,最后再結合客戶端RPC日志信息和服務端RPC日志信息對單點業務的性能進行分析,從而實現了對客戶端和服務端進行聯查的目的,可以準確地對單點業務的性能問題進行定位,有利于改善單點業務的性能。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本發明實施例提供的單點業務性能的分析方法的流程圖;圖2是本發明實施例提供的單點業務性能的分析方法的另一流程圖;圖3a是本發明實施例提供的客戶端RPC日志信息的統一建模語言(UML,UnifiedModeling Language)模型圖;圖3b是本發明實施例提供的第一服務端RPC日志信息的UML模型圖;圖3c是本發明實施例提供的第二服務端RPC日志信息的UML模型圖;圖4是本發明實施例提供的單點業務性能分析裝置的結構示意圖;圖5是本發明實施例提供的單點業務性能分析裝置的另一結構示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。本發明實施例提供一種單點業務性能的分析方法、裝置和系統。以下分別進行詳細說明。實施例一、本實施例將從單點業務性能分析裝置的角度進行描述。該單點業務性能分析裝置具體可以作為獨立的實體實現,也可以集成在客戶端、服務端或其他設備中,比如,集成在企業資源計劃(ERP, Enterprise Resource Planning)系統的客戶端或服務端中,等等。一種單點業務性能的分析方法,包括:確定需要分析的單點業務所對應的事件;根據所述事件獲取對應的客戶端遠程過程調用協議RPC日志信息;根據客戶端RPC日志信息獲取對應的服務端RPC日志信息;根據所述客戶端RPC日志信息和服務端RPC日志信息分析所述單點業務的性能。如圖1所示,具體流程可以如下:101、確定需要分析的單點業務所對應的事件;102、根據步驟101中確定的事件獲取對應的客戶端RPC日志信息;其中,客戶端RPC日志信息可以包括事件名、程序類名與方法名、訪問標識、RPC調用的時間、RPC調用次數、RPC調用的時長和RPC總得調用時間等信息;103、 根據客戶端RPC日志信息獲取對應的服務端RPC日志信息;
其中,服務端RPC日志信息可以包括兩個RPC日志信息,一個是針對SQL腳本與SQL所在的程序類名與方法名的SQL日志信息,另一個是針對SQL執行計劃(Plan)的計劃日志信息,為了描述方便,在本發明實施例中將SQL日志信息稱為第一服務端RPC日志信息,而將計劃日志信息稱為第二服務端RPC日志信息,這兩種RPC日志信息的內容具體可以如下:(I)第一服務端RPC日志信息;該第一服務端RPC日志信息具體可以包括程序類名與方法名、結構化查詢語言(SQL, Structured Query Language)語句、SQL的執行時間、SQL標識和數據庫方面總得耗用時間等信息;(2)第二服務端RPC日志信息;該第二服務端RPC日志信息具體可以包括SQL語句和執行計劃信息等信息。則根據客戶端RPC日志信息獲取對應的服務端RPC日志信息具體可以如下:根據客戶端RPC日志信息中的訪問標識在第一服務端RPC日志信息中聯查到對應的程序類名與方法名、SQL語句、SQL的執行時間、SQL標識和數據庫方面總得耗用時間;根據第一服務端RPC日志信息中的SQL標識在第二服務端RPC日志信息中聯查到對應的SQL語句和執行計劃信息。104、根據步驟102中獲取到的客戶端RPC日志信息和步驟103中獲取到的服務端RPC日志信息分析該單點業務的性能。例如,具體可以如下:(I)根據客戶端RPC 日志信息中的事件名、程序類名與方法名、訪問標識、RPC調用的時間、RPC調用次數、RPC調用的時長和RPC總得調用時間分析該單點業務在客戶端上的程序性能;(2)根據第一服務端RPC日志信息中的程序類名與方法名、SQL語句、SQL的執行時間、SQL標識和數據庫方面總得耗用時間分析該單點業務在服務端上的程序性能;(3)根據第二服務端RPC日志信息中的SQL語句和執行計劃信息得到執行計劃的時間,根據執行計劃的時間分析所述單點業務在服務端上的SQL性能。其中,客戶端RPC日志信息和服務端RPC日志信息為根據單點業務的執行情況而預先生成的日志信息,即,在確定需要分析的單點業務所對應的事件之前,該方法還可以包括:調用客戶端的RPC程序,以及調用服務端的RPC程序;在客戶端和服務端執行單點業務時,利用調用的客戶端的RPC程序對單點業務的執行情況進行監控,并在客戶端生成客戶端RPC日志信息;以及,利用調用的服務端的RPC程序對單點業務的執行情況進行監控,并在服務端生成服務端RPC日志信息。由上可知,本實施例通過確定需要分析的單點業務所對應的事件,來獲取對應的客戶端RPC日志信息,然后再通過客戶端RPC日志信息獲取到對應的服務端RPC日志信息,最后再結合客戶端RPC日志信息和服務端RPC日志信息對單點業務的性能進行分析,從而實現了對客戶端和服務端進行聯查的目的,可以準確地對單點業務的性能問題進行定位,有利于改善單點業務的性能。實施例二、根據實施例一所描述的方法,一下將舉例作進一步詳細說明。
首先,可以分別為客戶端RPC程序和服務端RPC程序設置一個觸發開關,其中,在本發明實施例中,客戶端RPC程序的觸發開關稱為客戶端的RPC開關,而服務端RPC程序的觸發開關則稱為服務端的RPC開關。其次,當需要為某個單點業務生成RPC日志信息(即在客戶端生成客戶端RPC日志信息,在服務端生成服務端RPC日志信息)時,就可以分別啟動客戶端的RPC開關和服務端的RPC開關,從而觸發客戶端RPC程序和服務端RPC程序的調用,然后,在客戶端和服務端執行單點業務時,分別利用客戶端RPC程序和服務端RPC程序對單點業務的執行情況進行監控,使得可以在客戶端生成客戶端RPC日志信息,以及在服務端生成服務端RPC日志信息,這樣,后續就可以利用客戶端RPC日志信息和服務端RPC日志信息快速定位該執行的單點業務的性能。以下將以ERP系統中的單點業務A為例作詳細說明。其中,該ERP系統包括ERP客戶端和ERP服務端(簡稱為客戶端和服務端),且客戶端和服務端中均集成有本發明實施例提供的單點業務性能分析裝置。參見圖2,單點業務A性能的分析方法流程具體可以如下:201、客戶端接受用戶的設置,以觸發客戶端的RPC開關的開啟;例如,具體可以接受用戶在服務端所進行的設置,比如接收用戶在服務端輸入的客戶端RPC開關的啟動指令,然后根據該啟動指令觸發客戶端RPC開關的開啟;或者,具體也可以接受用戶在客戶端所進行的設置,比如接收用戶在客戶端輸入的客戶端RPC開關的啟動指令,然后根據該啟動指令觸發客戶端RPC開關的開啟。
·
202、服務端接受用戶的設置,以觸發服務端的RPC開關的開啟;例如,具體可以接收用戶在客戶端輸入的服務端RPC開關的啟動指令,然后根據該啟動指令觸發服務端RPC開關的開啟。其中,步驟201和步驟202的執行可以不分先后。203、當客戶端的RPC開關被開啟時,觸發單點業務性能分析裝置調用客戶端RPC程序,同理,當服務端的RPC開關被開啟時,也觸發單點業務性能分析裝置調用ERP服務端RPC程序,于是,客戶端RPC程序和ERP服務端RPC程序開始運行。204、ERP系統執行單點業務A。205、單點業務性能分析裝置利用調用的客戶端的RPC程序對單點業務A的執行情況進行監控,并在客戶端生成客戶端RPC日志信息“rpcD.V60SP1.log” ;以及,單點業務性能分析裝置利用調用的服務端的RPC程序對單點業務A的執行情況進行監控,并在服務端生成服務端 RPC 日志信息:“RpcSqlD.V60SP1.log” 和 “SqlPlanD.V60SP1.log”。其中,客戶端RPC日志信息,以及兩個服務端RPC日志信息的結構可以如下:參見圖3a、圖3b和圖3c,這些圖為各種RPC日志信息的UML模型圖,其中,在這些圖中,粗線框表示活動類,粗線框中的內容表示類的屬性,屬性后可以跟上類型甚至缺省取值,比如“name:string”,其中,name即為類的屬性,而“string”則是“name”的類型,意思為“字串型”。此外,空心實線箭頭表示“一般化(generalization) ”,具體表示位于箭頭起始的對象繼承于箭頭指向的對象。“實心菱形到實線箭頭”和“實線箭頭”,表示“關聯(Association) ”,具體表示位于箭頭起始的對象聚合箭頭指向的對象;其中,“實心菱形到箭頭”上的數字“ I ”表示一個對象,數字“0..*”表示零個或多個對象。
(I)客戶端 RPC 日志信息:rpcD.V60SP1.log ;如圖3a所示,該圖為客戶端RPC日志信息的UML模型圖。從圖3a可以看出,RpcLog為一個日志文件。其中,RpcLog屬于活動類,包括屬性“name”,“name”意思為“名稱”,其類型為“string”。“RpcLog”聚合零個或多個“MainFrame Quit (意思為退出主框架)”,以及聚合零個或多個“Action (意思為方法)”。其中,“MainFrame Quit”屬于活動類,為未聲明Action之外的RPC日志信息,會在客戶端退出時統一退出;“Action”也屬于活動類,為客戶端的性能事件,包括用戶界面(UI, User Interface)初始化和用戶界面上任意按鈕或菜單綁定的Swing Action (改變方法),“Action”嵌套時,通過順序和stack (棧)表示父子關系,比如,如圖 3a 中的“Action (stacklevel = I) ”則表 不有一層嵌套,其中,“Action (stacklevel =
I)”為子Action, “Action”為父Action。之所以有嵌套的Action,是因為某些用戶操作會跨Action,但不會跨最外層的Action,所以,一些關鍵的統計信息可以在子Action輸出。“Action”聚合零個或多個“ActionEntry (意思為方法事件)”, “ActionEntry”也屬于活動類,不同類型的“ActionEntry”可以通過名稱(即name)的命名規則來區分,比如,如果是普通的RPC調用(即RpcInvoke)所產生的“ActionEntry”話,則沒有前綴,如果是緩存中的RPC調用(即Cached RpcInvoke)所產生的“ActionEntry”的話,則為“+++”,如果是子方法(即SubAction)所產生的“ActionEntry”的話,則為“一”,如果是用戶輸入(即 User Input)白勺 “ActionEntry” 的話,則為 “###”,等等。“MainFrame Quit”聚合零個或多個“Thread Summary (意思為總線程)”,“Thread Summary” 屬于活動類,查看 “Thread (意思為線程)”為 “AWT-EventQueue-l ” 的“Sirnimary(意思為匯總)”,可以了解用戶操作的全過程。“Thread Summary” 也聚合零個或多個 “ActionEntry”。其中,“ActionEntry”主要可以由 “Rpclnvoke (即普通得 Rpc 調用)'“CachedRpCInVOke(即緩存Rpc調用)”、“User Input (即用戶輸入)”或“SubAction (即子方法)”產生。其中,“Rpclnvoke”可以聯查服務端的性能事件Rpclnvoke, “User Input”用于計算最外層 “Action” 中 “waitxxx” 的參數值,比如,計算 “waitTime”、“waitRpcBytes” 或“waitRpcNumber”等的參數值;“SubAction”用于說明子Action在父Action中的時序。以下將對圖3a中各個活動類的屬性和類型進行簡略說明,參見表一。表一:
權利要求
1.一種單點業務性能的分析方法,其特征在于,包括: 確定需要分析的單點業務所對應的事件; 根據所述事件獲取對應的客戶端遠程過程調用協議RPC日志信息; 根據客戶端RPC日志信息獲取對應的服務端RPC日志信息; 根據所述客戶端RPC日志信息和服務端RPC日志信息分析所述單點業務的性能。
2.根據權利要求1所述的方法,其特征在于, 所述客戶端RPC日志信息包括事件名、程序類名與方法名、訪問標識、RPC調用的時間、RPC調用次數、RPC調用的時長和RPC總得調用時間; 所述服務端RPC日志信息包括第一服務端RPC日志信息和第二服務端RPC日志信息;所述第一服務端RPC日志信息包括程序類名與方法名、結構化查詢語言SQL語句、SQL的執行時間、SQL標識和數據庫方面總得耗用時間; 所述第二服務端RPC日志信息包括SQL語句和執行計劃信息。
3.根據權利要求2所述的方法,其特征在于,所述根據客戶端RPC日志信息獲取對應的服務端RPC日志信息,包括: 根據客戶端RPC日志信息中的訪問標識在第一服務端RPC日志信息中聯查到對應的程序類名與方法名、SQL語句、SQL的執行時間、SQL標識和數據庫方面總得耗用時間; 根據第一服務端RPC日志信息中的SQL標識在第二服務端RPC日志信息中聯查到對應的SQL語句和執行計劃彳 目息。
4.根據權利要求2或3所述的方法,其特征在于,所述根據所述客戶端RPC日志信息和服務端RPC日志信息分析所述單點業務的性能,包括: 根據所述客戶端RPC日志信息中的事件名、程序類名與方法名、訪問標識、RPC調用的時間、RPC調用次數、RPC調用的時長和RPC總得調用時間分析所述單點業務在客戶端上的程序性能; 根據第一服務端RPC日志信息中的程序類名與方法名、SQL語句、SQL的執行時間、SQL標識和數據庫方面總得耗用時間分析所述單點業務在服務端上的程序性能; 根據第二服務端RPC日志信息中的SQL語句和執行計劃信息得到執行計劃的時間,根據執行計劃的時間分析所述單點業務在服務端上的SQL性能。
5.根據權利要求1至3中任一項所述的方法,其特征在于,所述確定需要分析的單點業務所對應的事件之前,還包括: 調用客戶端的RPC程序,以及調用服務端的RPC程序; 在客戶端和服務端執行單點業務時,利用所述客戶端的RPC程序對單點業務的執行情況進行監控,并在客戶端生成客戶端RPC日志信息;以及, 利用所述服務端的RPC程序對單點業務的執行情況進行監控,并在服務端生成服務端RPC日志信息。
6.一種單點業務性能的分析裝置,其特征在于,包括: 確定單元,用于確定需要分析的單點業務所對應的事件; 第一獲取單元,用于根據所述事件獲取對應的客戶端遠程過程調用協議RPC日志信息; 第二獲取單元,用于根據客戶端RPC日志信息獲取對應的服務端RPC日志信息;分析單元,用于根據所述客戶端RPC日志信息和服務端RPC日志信息分析所述單點業務的性能。
7.根據權利要求6所述的單點業務性能的分析裝置,其特征在于, 所述客戶端RPC日志信息包括事件名、程序類名與方法名、訪問標識、RPC調用的時間、RPC調用次數、RPC調用的時長和RPC總得調用時間; 所述服務端RPC日志信息包括第一服務端RPC日志信息和第二服務端RPC日志信息; 所述第一服務端RPC日志信息包括程序類名與方法名、結構化查詢語言SQL語句、SQL的執行時間、SQL標識和數據庫方面總得耗用時間; 所述第二服務端RPC日志信息包括SQL語句和執行計劃信息。
8.根據權利要求7所述的單點業務性能的分析裝置,其特征在于,所述第二獲取單元包括: 第一獲取子單元,用于根據客戶端RPC日志信息中的訪問標識在第一服務端RPC日志信息中聯查到對應的程序類名與方法名、SQL語句、SQL的執行時間、SQL標識和數據庫方面總得耗用時間; 第二獲取子單元,用于根據第一服務端RPC日志信息中的SQL標識在第二服務端RPC日志信息中聯查到對應的SQL語句和執行計劃信息。
9.根據權利要求7或8所述的單點業務性能的分析裝置,其特征在于,所述分析單元包括: 第一分析子單元,用于根據所述客戶端RPC日志信息中的事件名、程序類名與方法名、訪問標識、RPC調用的時間、RPC調用次數、RPC調用的時長和RPC總得調用時間分析所述單點業務在客戶端上的程序性能; 第二分析子單元,用于根據第一服務端RPC日志信息中的程序類名與方法名、SQL語句、SQL的執行時間、SQL標識和數據庫方面總得耗用時間分析所述單點業務在服務端上的程序性能; 第三分析子單元,用于根據第二服務端RPC日志信息中的SQL語句和執行計劃信息得到執行計劃的時間,根據執行計劃的時間分析所述單點業務在服務端上的SQL性能。
10.一種企業資源計劃系統,其特征在于,包括權利要求6至9所述的任一種單點業務性能的分析裝置。
全文摘要
本發明公開了一種單點業務性能的分析方法、裝置和系統。本發明實施例通過確定需要分析的單點業務所對應的事件,來獲取對應的客戶端RPC日志信息,然后再通過客戶端RPC日志信息獲取到對應的服務端RPC日志信息,最后再結合客戶端RPC日志信息和服務端RPC日志信息對單點業務的性能進行分析,從而實現了對客戶端和服務端進行聯查的目的,可以準確地對單點業務的性能問題進行定位,有利于改善單點業務的性能。
文檔編號H04L12/24GK103248511SQ20121003277
公開日2013年8月14日 申請日期2012年2月14日 優先權日2012年2月14日
發明者楊銀芳 申請人:金蝶軟件(中國)有限公司