麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

用于分析系統的性能的方法、設備和系統的制作方法

文檔序號:6363041閱讀:230來源:國知局
專利名稱:用于分析系統的性能的方法、設備和系統的制作方法
技術領域
本發明實施例涉及計算機領域,并且更具體地,涉及用于分析系統的性能的方法和設備。
背景技術
當程序在計算機系統中運行時,一般情況下無法知道CPU資源消耗到何處,這為對系統進行優化帶來很大的困難。為了解決這個問題,計算機行業發展出性能剖析 (profiling)技術,通過這種方法來分析系統資源消耗在何處。現代的性能剖析技術主要包括兩類插裝(instrumenting)和采樣(sampling)。 前者可以對系統的行為進行全部采集,而后者是部分采集。插裝技術是在目標程序中插入指令,以獲取系統的性能。例如業界的Gprof軟件, 其對目標程序全系統插裝然后獲取各個剖析對象(一般指函數)的信息,如時長、次數等, 然后全系統進行對象合并(同名對象的信息合并,一般為累計、平均等),計算出各自比例, 即可發現各對象在目標系統中的CPU消耗情況。其中,“同名對象”可以是其中用于標識對象的要素相同的對象,例如標識符(ID)、函數名等要素,從而可依據每個要素進行合并,此外也可以依據時長、次數等來進行合并。但是,插裝技術基于業務下獨有對象所占的比例來分析業務比例,無法拆分利用公共函數,只能從宏觀角度給出系統性能分析的結果,因此在獨有對象所占比例較少時將嚴重影響分析結果的準確度。采樣技術基于某個系統的事件狀態變化來采集系統信息,如基于時間采樣、基于 Cachemiss (cache未命中)每發生I萬次采樣、基于加載每2萬次數據采樣等等。采樣技術獲取的是系統整個運行過程中的部分信息。所采集的信息可根據函數、線程或進程來分類分析,以獲取各自的比例,從而指導優化。但是,當采樣頻率過多時,如Cachemiss每發生 100次采樣,其剖析程序本身會嚴重消耗系統資源從而導致數據不可信。此外,采樣技術同樣只能從宏觀角度給出系統性能分析的結果,而無法獲取所承載的數據流的信息,也就無法從業務角度進行分析。

發明內容
本發明實施例提供一種用于分析系統的性能的方法和設備,能夠針對每個指定的目標對象進行分析,以從微觀角度分別提供每個指定的目標對象內的各個子對象的資源占用情況。根據本發明實施例的一個方面,提供了一種用于分析系統的性能的方法,包括在所述系統運行過程中,采集指定的目標對象在一段時間內的數據信息,所述數據信息表示在所述一段時間內所述目標對象中包括的一個或多個子對象在所述目標對象被調用時所消耗的各類系統資源;根據所述數據信息來分別計算所述一個或多個子對象中的每個子對象的性能屬性,所述性能屬性以該子對象的數據信息的統計結果來表示;以及基于所述性能屬性來分析所述一個或多個子對象中的每個子對象所占用的系統資源。
根據本發明實施例的另一個方面,提供了一種用于分析系統的性能的設備,包括 采集部件,用于在所述系統運行過程中采集指定的目標對象在一段時間內的數據信息,所述數據信息表示在所述一段時間內所述目標對象中包括的一個或多個子對象在所述目標對象被調用時所消耗的各類系統資源;計算部件,用于根據所述數據信息來分別計算所述一個或多個子對象中的每個子對象的性能屬性,所述性能屬性以該子對象的數據信息的統計結果來表示;以及分析部件,用于基于所述性能屬性來分析所述一個或多個子對象中的每個子對象所占用的系統資源。根據本發明實施例的另一個方面,提供了一種性能分析系統,包括待分析的目標系統和如上所述的用于分析所述目標系統的性能的設備。根據本發明實施例,因為僅針對指定的目標對象來進行分析并從微觀角度提供該指定的目標對象內的每一個子對象的資源占用情況,所以分析結果更具有針對性,并且提供了更加精確的系統性能占用率數據,從而使得用戶能夠快速準確地識別系統熱點,進而便于優化系統性能。


為了更清楚地說明本發明實施例的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖I是示出根據本發明實施例的用于分析系統的性能的方法的示范性流程圖。圖2示出根據本發明實施例的一個目標對象的示意圖。圖3示出利用根據本發明實施例的方法來分析系統的性能的過程以及利用傳統方法來分析系統的性能的過程的示意圖。圖4示出根據本發明實施例的方法而得到的各個模塊所占用的系統資源的占用率示意圖。圖5示出根據本發明實施例的用于分析系統的性能的一個設備的示范性框圖。圖6示出根據本發明實施例的性能分析系統的框圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。本發明實施例提供用于分析系統的性能的方法、設備及系統,以對計算機系統資源(例如以模塊為單位進行CPU占用率計算)的使用情況進行分析,該過程分析的結果有助于了解系統的資源消耗,以便有針對性地優化系統的性能。圖I是示出根據本發明實施例的用于分析系統的性能的方法100的示范性流程圖。如圖I中所示,在方法100的101中,在所述系統運行過程中,采集指定的目標對象在一段時間內的數據信息,所述數據信息表示在所述一段時間內所述目標對象中包括的一個或多個子對象在所述目標對象被調用時所消耗的各類系統資源。這里,可以由用戶來指定目標對象。具體的,所述目標對象即連續的一系列指令所構成的,,例如base block(比函數級別小)、函數、線程或進程,且所述子對象例如調用該函數的業務模塊、線程或進程。需要說明的是,通過動態插樁采集指定的目標對象在一段時間內的數據信息。這里的動態插樁指的是可以在程序運行時進行插樁,參見下文中的圖3中(a)和(b)。比如, 在圖3中的(a)中受關鍵函數(函數f3)觸發采集指定的目標對象(函數f2、f3和f6)在一段時間內的數據信息;而在圖3中的(b)中受每個函數的觸發采集該函數在一段時間內的數據信息。在102中,根據所述數據信息來分別計算所述一個或多個子對象中的每個子對象的性能屬性,所述性能屬性以該子對象的數據信息的統計結果來表示。在103中,基于所述性能屬性來分析所述一個或多個子對象中的每個子對象所占用的系統資源。需要說明的是,當子對象的性能屬性的值高時,確定該子對象所占用的系統資源多。其中,在本發明實施例中,在一種實現方式下,步驟101可以包括采集在該指定的目標對象中包括的每個子對象在該一段時間內的調用棧信息、線程信息、全局變量、參數信息,且所述參數信息包括每個子對象的標識符、運行時長、消息大小和優先級。在一種實現方式下,步驟102可以包括通過統計方法,根據所述數據信息來分別計算所述每個子對象的出現總次數、平均長度、最大長度、平均優先級、最大優先級中的一個或多個,作為每個子對象的性能屬性。較優的,如果所述每個子對象具有相應的標識符,則在一種實現方式下,步驟102可以包括以子對象的標識符作為分類條件,將具有相同標識符的子對象的參數信息進行匯聚;基于匯聚后的參數信息,通過統計方法分別計算每個子對象的出現總次數、平均長度、最大長度、平均優先級、最大優先級中的一個或多個,作為每個子對象的性能屬性。可見,根據本發明實施例,因為僅針對指定的目標對象來進行分析并從微觀角度提供該指定的目標對象內的每一個子對象的資源占用情況,所以分析結果更具有針對性, 并且提供了更加精確的系統性能占用率數據,從而使得用戶能夠快速準確地識別系統熱點,進而便于優化系統性能。這里,用戶可以指定一個或多個目標對象來進行監視,并且根據本發明實施例的方法可以針對每個指定的目標對象進行分析,以分別提供每個指定的目標對象內的各個子對象的資源占用情況。例如,對于E2E(End to End,端對端)業務分組,不同的業務可能經過同一流程,例如 TCP (Transmission Control Protocol,傳輸控制協議)、SPX (Sequenced Packet Exchange Protocol,序列分組交換協議)等。利用傳統的性能分析方法,僅能得到諸如下述的分析結果
6
Tcp—send 50%Spx—send 20%其他I—send 10%......但是,利用根據本發明實施例的方法100,可以給出例如Tcp—send所處理的各個詳細業務在TCP層次的占用率,即Service 120%Service2 10%Service3 3.3%Service4 10%......圖2示出根據本發明實施例的一個目標對象200的示意圖。如圖2中所示,目標對象200內存在多個業務Servicel、Service2、Service3、
Service4、.......Service (N-I)和ServiceN,其中N為大于等于I的正整數,并且所述多
個業務 Servicel、Service2> Service3> Service4>.......Service (N-I)和 ServiceN 可
以具有統一的輸入。雖然這里在圖2中示出多個業務具有統一的輸出,但是本發明不限于此,多個業務也可以不具有統一的輸出,例如,多個業務中的一些可以具有統一輸出但另一些不具有統一輸出,或者全部業務都不具有統一輸出。當不具有統一的輸出數據時,可以在多層分別進行動態跟蹤以獲取多種業務。因此,優選地,用戶可以指定內部業務較多的對象作為要被監視的目標對象。該目標對象可以具有統一的輸入,但是不需要具有統一的輸出。此外,目標對象可以是函數、線程(thread)或進程(process),且子對象可以是調用該函數的業務模塊、進程或線程。因此,本發明實施例可以從微觀角度,以業務模塊為單位、以進程為單位或以線程單位等來提供具體的資源占用情況。下面,將參照附圖更加詳細地描述根據本發明實施例的用于分析系統的性能的過程。圖3示出利用根據本發明實施例的方法來分析系統的性能的過程以及利用傳統方法來分析系統的性能的過程的示意圖。其中,(a)示出利用根據本發明實施例的方法來分析系統的性能的過程,(b)示出利用傳統方法中的插裝技術來分析系統的性能的過程,且 (C)示出利用傳統方法中的采樣技術來分析系統的性能的過程。如圖3中的(a)所示,假設存在多個對象fl、f2、f3、f4、f5、f6、......這里,每個
對象可以是函數。在多個對象fl、f2、f3、f4、f5、f6、......中,對象f2、f3和f6是指定
的目標對象,并且將它們用標記(mark)(也可以稱之為探針(probe))來標識。雖然在圖3 的(a)示出3個指定的目標對象,但是本發明不限于此,本領域技術人員可以根據需求靈活指定任意數目的對象作為目標對象。可以由用戶來指定該目標對象。此外,優選地,當需要時,例如當系統發生問題時, 用戶可以立即指定希望被監視的目標對象,以便抓住系統熱點以便了解問題所在。也就是說,用戶可以根據需要隨時指定目標對象,因此利用根據本發明實施例的方法來分析系統的性能的過程是一種動態的實時跟蹤過程。這省去了用戶在編譯時即需要進行插裝的麻煩,并且使得分析結果更具針對性。繼續參照圖3中的(a),當觸發指定的目標對象、例如函數f3時,開始采集該目標對象的數據信息,例如包括函數f3的調用棧信息、線程信息、全局變量、參數信息等。可以持續采集目標對象的數據信息達一段時間,例如,幾分鐘,以便使得在該一段時間內采集的數據信息足夠多、足以覆蓋要被監視的目標對象的性能。可選地,可以當系統內存耗盡時自動或手動停止采集。或者,可以由用戶預先設置該一段時間的具體長度。再或者,可以在采集的同時向用戶傳送所采集的數據信息,當用戶認為數據信息足夠多時停止米集。同樣,當觸發其他指定的目標對象(例如函數f2和函數f6)時,同樣會采集該目標對象的數據信息。圖3中的(b)示出利用傳統方法中的插裝技術來分析系統的性能的過程,顯然,當觸發每個函數時都要采集該函數的時間、調用棧信息、線程信息等,不僅無法采集函數內部的全局變量和參數信息,而且會影響系統性能。此外,圖3中的(C)示出利用傳統方法中的采樣技術來分析系統的性能的過程。顯然,該過程也無法采集函數內部的全局變量和參數信息。有利的是,根據本發明實施例,采集指定的目標對象在一段時間內的數據信息的過程可以采集在該指定的目標對象中包括的每個子對象在該一段時間內的調用棧信息、線程信息、全局變量、參數信息,且所述參數信息可以包括每個子對象的標識符、運行時長、消息大小和優先級。下面的表I示出根據本發明實施例所采集的數據信息的具體例子,其中以消息分發包為例,不同的業務(子對象)調用同一個函數將具有不同的標識符、不同的消息大小及不同的優先級。例如,以線程內的模塊(以模塊號PID標識,即該模塊的標識符)為單位進行采集,并且每個模塊可以對應于一個消息。這里,參數1(長度)的單位可以為字節 (Byte)。表I
模塊號(PID)參數I(長度)參數2 (優先級)I1080I21560I313312034100130251060I61333037133280381080I91060I101536I111331803121003302131333203 根據上述數據信息,可以分別計算所述一個或多個子對象中的每個子對象的性能屬性,即可以通過統計方法,根據所述數據信息來分別計算所述每個子對象的出現總次數、 平均長度、最大長度、平均優先級、最大優先級中的一個或多個,作為每個子對象的性能屬性。具體而言,首先,基于模塊號PID進行分類,即將相同模塊號PID的數據信息匯聚在一起,得到下面的表2。表 權利要求
1.一種用于分析系統的性能的方法,其特征在于,包括在所述系統運行過程中,采集指定的目標對象在一段時間內的數據信息,所述數據信息表示在所述一段時間內所述目標對象中包括的一個或多個子對象在所述目標對象被調用時所消耗的各類系統資源;根據所述數據信息來分別計算所述一個或多個子對象中的每個子對象的性能屬性,所述性能屬性以該子對象的數據信息的統計結果來表示;以及基于所述性能屬性來分析所述一個或多個子對象中的每個子對象所占用的系統資源。
2.根據權利要求I所述的方法,其特征在于,所述采集指定的目標對象在一段時間內的數據信息包括采集在該指定的目標對象中包括的每個子對象在該一段時間內的調用棧信息、線程信息、全局變量、參數信息,且所述參數信息包括每個子對象的標識符、運行時長、消息大小和優先級。
3.根據權利要求2所述的方法,其特征在于,所述根據所述數據信息來分別計算所述一個或多個子對象中的每個子對象的性能屬性包括通過統計方法,根據所述數據信息來分別計算所述每個子對象的出現總次數、平均長度、最大長度、平均優先級、最大優先級中的一個或多個,作為每個子對象的性能屬性。
4.根據權利要求2所述的方法,其特征在于如果所述每個子對象具有相應的標識符, 所述根據所述數據信息來分別計算所述一個或多個子對象中的每個子對象的性能屬性包括以子對象的標識符作為分類條件,將具有相同標識符的子對象的參數信息進行匯聚; 基于匯聚后的參數信息,通過統計方法分別計算每個子對象的出現總次數、平均長度、 最大長度、平均優先級、最大優先級中的一個或多個,作為每個子對象的性能屬性。
5.根據權利要求4所述的方法,其特征在于,所述基于所述性能屬性來分析所述一個或多個子對象中的每個子對象所占用的系統資源包括當子對象的性能屬性的值高時,確定該子對象所占用的系統資源多。
6.根據權利要求I至5中的任一項所述的方法,其特征在于在所述采集指定的目標對象在一段時間內的數據信息之前,還包括在需要時實時指定目標對象,并且所述指定的目標對象的數目是一個或多個。
7.根據權利要求6所述的方法,其特征在于所述目標對象包括函數、線程或進程,且所述子對象包括調用該函數的業務模塊、線程或進程。
8.一種用于分析系統的性能的設備,其特征在于,包括采集部件,用于在所述系統運行過程中,采集指定的目標對象在一段時間內的數據信息,所述數據信息表示在所述一段時間內所述目標對象中包括的一個或多個子對象在所述目標對象被調用時所消耗的各類系統資源;計算部件,用于根據所述數據信息來分別計算所述一個或多個子對象中的每個子對象的性能屬性,所述性能屬性以該子對象的數據信息的統計結果來表示;以及分析部件,用于基于所述性能屬性來分析所述一個或多個子對象中的每個子對象所占用的系統資源。
9.根據權利要求8所述的設備,其特征在于所述采集部件具體用于在所述系統運行過程中,采集在該指定的目標對象中包括的每個子對象在該一段時間內的調用棧信息、線程信息、全局變量、參數信息,且所述參數信息包括每個子對象的標識符、運行時長、消息大小和優先級。
10.根據權利要求9所述的設備,其特征在于,所述計算部件具體用于通過統計方法, 根據所述數據信息來分別計算所述每個子對象的出現總次數、平均長度、最大長度、平均優先級、最大優先級中的一個或多個,作為每個子對象的性能屬性。
11.根據權利要求9所述的設備,其特征在于所述計算部件具體用于以子對象的標識符作為分類條件將具有相同標識符的子對象的參數信息進行匯聚,并且基于匯聚后的參數信息,通過統計方法分別計算每個子對象的出現總次數、平均長度、最大長度、平均優先級、最大優先級中的一個或多個,作為每個子對象的性能屬性,其中,每個子對象具有相應的標識符。
12.—種性能分析系統,其特征在于,包括待分析的目標系統和如權利要求8至11中的任一項所述的用于分析所述目標系統的性能的設備。
全文摘要
本發明實施例提供了一種用于分析系統的性能的方法、設備及系統,包括采集指定的目標對象在一段時間內的數據信息,所述數據信息表示在所述一段時間內所述目標對象中包括的一個或多個子對象在所述目標對象被調用時所消耗的各類系統資源;根據所述數據信息來分別計算所述一個或多個子對象中的每個子對象的性能屬性,所述性能屬性以該子對象的數據信息的統計結果來表示;以及基于所述性能屬性來分析所述一個或多個子對象中的每個子對象所占用的系統資源。因此,能夠從微觀角度提供指定的目標對象內的每一個子對象的資源占用情況,提供了更加精確的系統性能占用率數據,從而使得用戶能夠快速準確地識別系統熱點,進而便于優化系統性能。
文檔編號G06F11/34GK102609351SQ20121000858
公開日2012年7月25日 申請日期2012年1月11日 優先權日2012年1月11日
發明者李繼忠 申請人:華為技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 黄骅市| 石门县| 喜德县| 黑水县| 正安县| 巴林左旗| 凤山县| 武川县| 永州市| 陕西省| 东乌珠穆沁旗| 遵义县| 克拉玛依市| 洱源县| 封开县| 那坡县| 巨野县| 中方县| 漳平市| 涡阳县| 岱山县| 方正县| 江山市| 绥芬河市| 宝山区| 涿州市| 宕昌县| 万载县| 娱乐| 津市市| 陵川县| 太白县| 武夷山市| 长春市| 台湾省| 文昌市| 故城县| 纳雍县| 平邑县| 晋城| 洪雅县|