本申請涉及計(jì)算機(jī)處理
技術(shù)領(lǐng)域:
:,特別是涉及一種業(yè)務(wù)對象的信息加載方法和一種業(yè)務(wù)對象的信息加載裝置。
背景技術(shù):
::隨著網(wǎng)絡(luò)科技的快速發(fā)展,各種應(yīng)用服務(wù)、網(wǎng)絡(luò)業(yè)務(wù),如即時通訊、搜索等,得到了快速的發(fā)展。為了對各種應(yīng)用服務(wù)、網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行監(jiān)控,往往需要按照時間在操作系統(tǒng)內(nèi)核中按照資源占用情況等對所有進(jìn)程進(jìn)行排序(top),如統(tǒng)計(jì)系統(tǒng)的連接情況(netstat),以及內(nèi)存占用情況(slabtop)等等。在高性能的計(jì)算機(jī)中,百萬級別甚至更多的統(tǒng)計(jì)對象越來越普遍。例如,在諸如即時通訊、搜索等大流量的業(yè)務(wù)以及云計(jì)算基礎(chǔ)服務(wù)(IaaS)中,常常出現(xiàn)單計(jì)算機(jī)達(dá)到百萬級別甚至更多的連接數(shù)的情形。這種百萬級別的統(tǒng)計(jì)對象的情形下,通常需要對百萬級別的統(tǒng)計(jì)對象進(jìn)行實(shí)時的統(tǒng)計(jì),比如,從百萬級別的連接中,統(tǒng)計(jì)流量最高的一百個連接。目前統(tǒng)計(jì)的方式有很多,和單位時間相關(guān)的統(tǒng)計(jì)常常基于定時器。以流量統(tǒng)計(jì)為例,為了追蹤每個連接在一秒鐘內(nèi)的流量情況,可能需要在每個連接建立的時候啟動定時器,并設(shè)置超時時間為1秒鐘,這樣,每過1秒定時器超時的時候,就計(jì)算上一秒的流量,再進(jìn)行排序。這種基于定時器進(jìn)行統(tǒng)計(jì)的方式,在統(tǒng)計(jì)對象較少的情況下尚可接受,但是,由于基于定時器的方式需要中斷上下文進(jìn)行遍歷,在百萬級別甚至更多的統(tǒng)計(jì)對象時執(zhí)行如此多的定時器超時操作,而且定時時間一般很短,這種定時操作會非常頻繁,很可能同時多個連接的定時器發(fā)生超時,此時計(jì)算機(jī)的性能消耗十分巨大,甚至無法承受導(dǎo)致宕機(jī)。并且,目前的統(tǒng)計(jì)方式分散在內(nèi)核各個角落的統(tǒng)計(jì),當(dāng)系統(tǒng)負(fù)載加大,統(tǒng)計(jì)模塊自身的損耗也會更多,非自律搶占過多的資源,減少正常的業(yè)務(wù)模塊的資源消耗,導(dǎo)致正常的業(yè)務(wù)模塊的性能低下。此外,目前的統(tǒng)計(jì)方式一般都是根據(jù)特定的場景(如流量、存儲、內(nèi)存等)單獨(dú)進(jìn)行統(tǒng)計(jì),無法適用與其他的業(yè)務(wù)場景。還有,目前的統(tǒng)計(jì)方式在業(yè)務(wù)模塊熱升級時,之前的統(tǒng)計(jì)信息可能會丟失,重新初始化統(tǒng)計(jì)邏輯本身,也是非常耗時的。技術(shù)實(shí)現(xiàn)要素:鑒于上述問題,提出了本申請實(shí)施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種業(yè)務(wù)對象的信息加載方法和相應(yīng)的一種業(yè)務(wù)對象的信息加載裝置。本申請實(shí)施例公開了一種業(yè)務(wù)對象的信息加載方法,包括:獲取一個或多個業(yè)務(wù)對象對應(yīng)的一個或多個資源占用數(shù)據(jù);針對每個資源占用數(shù)據(jù),在所述業(yè)務(wù)對象對應(yīng)的統(tǒng)計(jì)時間段內(nèi),將所述資源占用數(shù)據(jù)累積至預(yù)設(shè)的存儲對象中;在所述業(yè)務(wù)對象對應(yīng)的更新時間段內(nèi),對在所述存儲對象中已累積的資源占用數(shù)據(jù)進(jìn)行排序;加載排序后的一個或多個資源占用數(shù)據(jù)。優(yōu)選地,在一個時間軸上包括一個或多個連續(xù)的統(tǒng)計(jì)時間段,每個統(tǒng)計(jì)時間段包括連續(xù)的N個子統(tǒng)計(jì)時間段,所述存儲對象具有N個子存儲對象,一個子存儲對象存儲一個子統(tǒng)計(jì)時間段內(nèi)的資源占用數(shù)據(jù),N為正整數(shù)。優(yōu)選地,所述在所述業(yè)務(wù)對象對應(yīng)的統(tǒng)計(jì)時間段內(nèi),將所述資源占用數(shù)據(jù)累積至預(yù)設(shè)的存儲對象中的步驟包括:判斷所述資源占用數(shù)據(jù)所屬的子統(tǒng)計(jì)時間段;當(dāng)所述資源占用數(shù)據(jù)屬于當(dāng)前子統(tǒng)計(jì)時間段時,將所述資源占用數(shù)據(jù)累加至所述子統(tǒng)計(jì)時間段對應(yīng)的子存儲對象中。優(yōu)選地,所述在所述業(yè)務(wù)對象對應(yīng)的統(tǒng)計(jì)時間段內(nèi),將所述資源占用數(shù)據(jù)累積至預(yù)設(shè)的存儲對象中還包括:當(dāng)所述資源占用數(shù)據(jù)屬于下一子統(tǒng)計(jì)時間段時,為所述子統(tǒng)計(jì)時間段分配子存儲對象;將所述資源占用數(shù)據(jù)更新至所述子存儲對象中。優(yōu)選地,所述資源占用數(shù)據(jù)具有關(guān)聯(lián)的推送時間戳,所述子存儲對象中具有關(guān)聯(lián)的統(tǒng)計(jì)時間戳;所述判斷所述資源占用數(shù)據(jù)所屬的子統(tǒng)計(jì)時間段的步驟包括:計(jì)算所述推送時間戳與最新的統(tǒng)計(jì)時間戳之間的第一時間差;判斷所述第一時間是否大于與所述子統(tǒng)計(jì)時間段值相等的統(tǒng)計(jì)時間閾值;若是,則確認(rèn)所述資源占用數(shù)據(jù)屬于下一子統(tǒng)計(jì)時間段;若否,則確認(rèn)所述資源占用數(shù)據(jù)屬于當(dāng)前子統(tǒng)計(jì)時間段。優(yōu)選地,所述在所述業(yè)務(wù)對象對應(yīng)的統(tǒng)計(jì)時間段內(nèi),將所述資源占用數(shù)據(jù)累積至預(yù)設(shè)的存儲對象中的步驟還包括:將所述資源占用數(shù)據(jù)關(guān)聯(lián)的推送時間戳設(shè)置為統(tǒng)計(jì)時間戳。優(yōu)選地,所述在所述業(yè)務(wù)對象對應(yīng)的更新時間段內(nèi),對在所述存儲對象中已累積的資源占用數(shù)據(jù)進(jìn)行排序的步驟包括:判斷所述資源占用數(shù)據(jù)所屬的更新時間段;當(dāng)所述資源占用數(shù)據(jù)屬于下一更新時間段時,將在所述業(yè)務(wù)對象對應(yīng)的更新時間段內(nèi)內(nèi),所述存儲對象中已累積的資源占用數(shù)據(jù)寫入所述資源占用數(shù)據(jù)對應(yīng)的業(yè)務(wù)統(tǒng)計(jì)表中;在所述業(yè)務(wù)統(tǒng)計(jì)表中獲得排序在前的一個或多個資源占用數(shù)據(jù)。優(yōu)選地,所述資源占用數(shù)據(jù)具有關(guān)聯(lián)的推送時間戳,所述存儲對象具有關(guān)聯(lián)的更新時間戳;所述判斷所述資源占用數(shù)據(jù)所屬的更新時間段的步驟包括:計(jì)算所述推送時間戳與最新的更新時間戳之間的第二時間差;判斷所述第二時間差是否大于與所述更新時間段值相等的更新時間閾值;若是,則確認(rèn)所述資源占用數(shù)據(jù)屬于下一更新時間段;若否,則確認(rèn)所述資源占用數(shù)據(jù)屬于當(dāng)前更新時間段。優(yōu)選地,所述將在所述業(yè)務(wù)對象對應(yīng)的更新時間段內(nèi)內(nèi),所述存儲對象 中已累積的資源占用數(shù)據(jù)寫入所述資源占用數(shù)據(jù)對應(yīng)的業(yè)務(wù)統(tǒng)計(jì)表中的步驟包括:計(jì)算屬于所述業(yè)務(wù)對象對應(yīng)的更新時間段的子統(tǒng)計(jì)時間段,所對應(yīng)的子存儲對象中已累積的資源占用數(shù)據(jù)之和;將所述已累積的資源占用數(shù)據(jù)之和寫入所述資源占用數(shù)據(jù)對應(yīng)的業(yè)務(wù)統(tǒng)計(jì)表中。優(yōu)選地,所述在所述業(yè)務(wù)對象對應(yīng)的更新時間段內(nèi),對在所述存儲對象中已累積的資源占用數(shù)據(jù)進(jìn)行排序的步驟還包括:將所述資源占用數(shù)據(jù)關(guān)聯(lián)的推送時間設(shè)置為更新時間戳。優(yōu)選地,在內(nèi)核層中存儲有樣品對象,所述樣品對象包括一個或多個業(yè)務(wù)統(tǒng)計(jì)表,所述業(yè)務(wù)統(tǒng)計(jì)表記載有排序的結(jié)果;所述加載排序后的一個或多個資源占用數(shù)據(jù)的步驟包括:在應(yīng)用層中通過預(yù)設(shè)的接口,讀取位于內(nèi)核層中的樣品對象,以獲得一個或多個業(yè)務(wù)統(tǒng)計(jì)表;顯示在所述一個或多個業(yè)務(wù)統(tǒng)計(jì)表中,排序在前的一個或多個資源占用數(shù)據(jù)。優(yōu)選地,該方法還包括:在熱升級時,將所述存儲對象駐留在內(nèi)存中;注銷所述業(yè)務(wù)對象對應(yīng)的樣品對象和所述樣品對象包括的一個或多個業(yè)務(wù)統(tǒng)計(jì)表,其中,所述業(yè)務(wù)統(tǒng)計(jì)表記載有排序的結(jié)果。本申請實(shí)施例還公開了一種業(yè)務(wù)對象的信息加載裝置,包括:數(shù)據(jù)獲取模塊,用于獲取一個或多個業(yè)務(wù)對象對應(yīng)的一個或多個資源占用數(shù)據(jù);數(shù)據(jù)累積模塊,用于針對每個資源占用數(shù)據(jù),在所述業(yè)務(wù)對象對應(yīng)的統(tǒng)計(jì)時間段內(nèi),將所述資源占用數(shù)據(jù)累積至預(yù)設(shè)的存儲對象中;數(shù)據(jù)排序模塊,用于在所述業(yè)務(wù)對象對應(yīng)的更新時間段內(nèi),對在所述存儲對象中已累積的資源占用數(shù)據(jù)進(jìn)行排序;數(shù)據(jù)加載模塊,用于加載排序后的一個或多個資源占用數(shù)據(jù)。優(yōu)選地,在一個時間軸上包括一個或多個連續(xù)的統(tǒng)計(jì)時間段,每個統(tǒng)計(jì)時間段包括連續(xù)的N個子統(tǒng)計(jì)時間段,所述存儲對象具有N個子存儲對象,一個子存儲對象存儲一個子統(tǒng)計(jì)時間段內(nèi)的資源占用數(shù)據(jù),N為正整數(shù)。優(yōu)選地,所述數(shù)據(jù)累積模塊包括:子統(tǒng)計(jì)時間段判斷子模塊,用于判斷所述資源占用數(shù)據(jù)所屬的子統(tǒng)計(jì)時間段;數(shù)據(jù)累加子模塊,用于在所述資源占用數(shù)據(jù)屬于當(dāng)前子統(tǒng)計(jì)時間段時,將所述資源占用數(shù)據(jù)累加至所述子統(tǒng)計(jì)時間段對應(yīng)的子存儲對象中。優(yōu)選地,所述數(shù)據(jù)累積模塊還包括:子存儲對象分配子模塊,用于在所述資源占用數(shù)據(jù)屬于下一子統(tǒng)計(jì)時間段時,為所述子統(tǒng)計(jì)時間段分配子存儲對象;數(shù)據(jù)更新子模塊,用于將所述資源占用數(shù)據(jù)更新至所述子存儲對象中。優(yōu)選地,所述資源占用數(shù)據(jù)具有關(guān)聯(lián)的推送時間戳,所述子存儲對象中具有關(guān)聯(lián)的統(tǒng)計(jì)時間戳;所述子統(tǒng)計(jì)時間段判斷子模塊包括:第一時間差計(jì)算子模塊,用于計(jì)算所述推送時間戳與最新的統(tǒng)計(jì)時間戳之間的第一時間差;統(tǒng)計(jì)時間閾值判斷子模塊,用于判斷所述第一時間是否大于與所述子統(tǒng)計(jì)時間段值相等的統(tǒng)計(jì)時間閾值;若是,則調(diào)用第一確認(rèn)子模塊,若否,則調(diào)用第二確認(rèn)子模塊;第一確認(rèn)子模塊,用于確認(rèn)所述資源占用數(shù)據(jù)屬于下一子統(tǒng)計(jì)時間段;第二確認(rèn)子模塊,用于確認(rèn)所述資源占用數(shù)據(jù)屬于當(dāng)前子統(tǒng)計(jì)時間段。優(yōu)選地,所述數(shù)據(jù)累積模塊還包括:統(tǒng)計(jì)時間戳設(shè)置子模塊,用于將所述資源占用數(shù)據(jù)關(guān)聯(lián)的推送時間戳設(shè)置為統(tǒng)計(jì)時間戳。優(yōu)選地,所述數(shù)據(jù)排序模塊包括:更新時間段判斷子模塊,用于判斷所述資源占用數(shù)據(jù)所屬的更新時間 段;業(yè)務(wù)統(tǒng)計(jì)表寫入子模塊,用于在所述資源占用數(shù)據(jù)屬于下一更新時間段時,將在所述業(yè)務(wù)對象對應(yīng)的更新時間段內(nèi)內(nèi),所述存儲對象中已累積的資源占用數(shù)據(jù)寫入所述資源占用數(shù)據(jù)對應(yīng)的業(yè)務(wù)統(tǒng)計(jì)表中;排序獲得子模塊,用于在所述業(yè)務(wù)統(tǒng)計(jì)表中獲得排序在前的一個或多個資源占用數(shù)據(jù)。優(yōu)選地,所述資源占用數(shù)據(jù)具有關(guān)聯(lián)的推送時間戳,所述存儲對象具有關(guān)聯(lián)的更新時間戳;所述更新時間段判斷子模塊包括:第二時間差計(jì)算子模塊,用于計(jì)算所述推送時間戳與最新的更新時間戳之間的第二時間差;更新時間閾值判斷子模塊,用于判斷所述第二時間差是否大于與所述更新時間段值相等的更新時間閾值;若是,則調(diào)用第三確認(rèn)子模塊,若否,則調(diào)用第四確認(rèn)子模塊;第三確認(rèn)子模塊,用于確認(rèn)所述資源占用數(shù)據(jù)屬于下一更新時間段;第四確認(rèn)子模塊,用于確認(rèn)所述資源占用數(shù)據(jù)屬于當(dāng)前更新時間段。優(yōu)選地,所述業(yè)務(wù)統(tǒng)計(jì)表寫入子模塊包括:和計(jì)算子模塊,用于計(jì)算屬于所述業(yè)務(wù)對象對應(yīng)的更新時間段的子統(tǒng)計(jì)時間段,所對應(yīng)的子存儲對象中已累積的資源占用數(shù)據(jù)之和;和寫入子模塊,用于將所述已累積的資源占用數(shù)據(jù)之和寫入所述資源占用數(shù)據(jù)對應(yīng)的業(yè)務(wù)統(tǒng)計(jì)表中。優(yōu)選地,所述數(shù)據(jù)排序模塊還包括:更新時間戳設(shè)置子模塊,用于將所述資源占用數(shù)據(jù)關(guān)聯(lián)的推送時間設(shè)置為更新時間戳。優(yōu)選地,在內(nèi)核層中存儲有樣品對象,所述樣品對象包括一個或多個業(yè)務(wù)統(tǒng)計(jì)表,所述業(yè)務(wù)統(tǒng)計(jì)表記載有排序的結(jié)果;所述數(shù)據(jù)加載模塊包括:樣品對象讀取子模塊,用于在應(yīng)用層中通過預(yù)設(shè)的接口,讀取位于內(nèi)核 層中的樣品對象,以獲得一個或多個業(yè)務(wù)統(tǒng)計(jì)表;排序結(jié)果顯示子模塊,用于顯示在所述一個或多個業(yè)務(wù)統(tǒng)計(jì)表中,排序在前的一個或多個資源占用數(shù)據(jù)。優(yōu)選地,該裝置還包括:駐留模塊,用于在熱升級時,將所述存儲對象駐留在內(nèi)存中;注銷模塊,用于注銷所述業(yè)務(wù)對象對應(yīng)的樣品對象和所述樣品對象包括的一個或多個業(yè)務(wù)統(tǒng)計(jì)表,其中,所述業(yè)務(wù)統(tǒng)計(jì)表記載有排序的結(jié)果。本申請實(shí)施例包括以下優(yōu)點(diǎn):本申請實(shí)施例對業(yè)務(wù)對象的資源占用數(shù)據(jù),在相應(yīng)的統(tǒng)計(jì)時間段內(nèi)累積,在相應(yīng)的更新時間段,對已累積的資源占用數(shù)據(jù)進(jìn)行排序。其一、不存在定時器,不需要中斷上下文進(jìn)行遍歷,大大降低了性能消耗;其二、業(yè)務(wù)對象上下文基于無鎖的方式推送資源占用數(shù)據(jù),資源占用數(shù)據(jù)的排序也是針對單個處理器的,也是無鎖的結(jié)構(gòu),而鎖是影響性能的關(guān)鍵因素,無所的統(tǒng)計(jì)也大大降低了性能消耗;其三、可以按照業(yè)務(wù)需求調(diào)節(jié)存儲時間段和更新時間段等值,即統(tǒng)計(jì)效率可調(diào)節(jié),統(tǒng)計(jì)的彈性高,可以適配多種業(yè)務(wù)類型,同時使得整體性能損耗高度可控,避免非自律搶占過多的資源,保證正常的業(yè)務(wù)模塊的資源消耗,保證正常的業(yè)務(wù)模塊的性能;其四、支持并發(fā)對業(yè)務(wù)對象的資源占用數(shù)據(jù)進(jìn)行統(tǒng)計(jì);基于上述四點(diǎn),本申請實(shí)施例在大量數(shù)據(jù)、高并發(fā)、高壓力的情況下,適用與時間相關(guān)的統(tǒng)計(jì)。本申請實(shí)施例在熱升級時,駐留存儲對象、注銷樣品對象和業(yè)務(wù)統(tǒng)計(jì)表,避免了統(tǒng)計(jì)信息的丟失、避免初始化統(tǒng)計(jì)邏輯本身,減少了熱升級耗時。附圖說明圖1是本申請的一種業(yè)務(wù)對象的信息加載方法實(shí)施例的步驟流程圖;圖2是本申請的一種系統(tǒng)的層次架構(gòu)示意圖;圖3A和圖3B是本申請的一種時間軸的示例圖;圖4是本申請的一種業(yè)務(wù)對象的信息加載裝置實(shí)施例的結(jié)構(gòu)框圖。具體實(shí)施方式為使本申請的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對本申請作進(jìn)一步詳細(xì)的說明。參照圖1,示出了本申請的一種業(yè)務(wù)對象的信息加載方法實(shí)施例的步驟流程圖,具體可以包括如下步驟:步驟101,獲取一個或多個業(yè)務(wù)對象對應(yīng)的一個或多個資源占用數(shù)據(jù);如圖2所示,本申請實(shí)施例可以應(yīng)用分層架構(gòu),即內(nèi)核層(Kernel)和應(yīng)用層(User)。其中,內(nèi)核層(Kernel)可以為不同操作系統(tǒng)的內(nèi)核,例如,*nux(如linux)、*bsd等等,本申請實(shí)施例對此不加以限制。在內(nèi)核層(Kernel)中,統(tǒng)計(jì)模塊(Topstat)可以用于對業(yè)務(wù)對象(如連接、進(jìn)程等)按照業(yè)務(wù)需求(如內(nèi)存、流量、CPU資源等)進(jìn)行統(tǒng)計(jì),并支持并發(fā)操作(即并發(fā)執(zhí)行步驟101、步驟102、步驟103)。在統(tǒng)計(jì)模塊(Topstat)中,動態(tài)統(tǒng)計(jì)模塊(Dynamic)是DR算法的載體,可以用于進(jìn)行與時間相關(guān)的統(tǒng)計(jì),即在本申請實(shí)施例中,可以在內(nèi)核層(Kernel)中基于DR(DynamicRecall,動態(tài)回溯)算法進(jìn)行實(shí)時統(tǒng)計(jì)。靜態(tài)統(tǒng)計(jì)模塊(Static)可以用于進(jìn)行與時間無關(guān)的統(tǒng)計(jì),例如,接收到的總的包數(shù)。在本申請實(shí)施例中,可以通過業(yè)務(wù)對象在應(yīng)用時所涉及的觀察組件(Observer)獲取資源占用數(shù)據(jù),該資源占用數(shù)據(jù),可以為業(yè)務(wù)對象在應(yīng)用時、與其占用的設(shè)備資源(如流量、CPU、內(nèi)存等)相關(guān)的數(shù)據(jù)。觀察組件(Observer),如Observer1、Observer2,是攜帶被統(tǒng)計(jì)的業(yè)務(wù)對象的子系統(tǒng)(子模塊),可以是內(nèi)核子系統(tǒng),也可以是內(nèi)核層(Kernel)中的其他使用統(tǒng)計(jì)模塊(Topstat)的業(yè)務(wù)模塊。例如,在統(tǒng)計(jì)連接的流量時,觀察組件(Observer)相當(dāng)于內(nèi)核層(Kernel) 中一個網(wǎng)絡(luò)子模塊,如TCP(TransmissionControlProtocol,傳輸控制協(xié)議)協(xié)議棧,里面包含連接相關(guān)的管理和信息,所推送(push)的資源占用數(shù)據(jù)可以為接收到的數(shù)據(jù)包的數(shù)量(delta),也可以為包的體積大小,還可以為延時的大小等等。又例如,對于CPU資源,該資源占用數(shù)據(jù)可以為磁盤I/O,對于內(nèi)存,該資源占用數(shù)據(jù)可以為讀/寫速度,等等。觀察組件(Observer)在安裝時通過注冊(Register)接入統(tǒng)計(jì)模塊(Topstat),并向統(tǒng)計(jì)模塊(Topstat)推送(push)資源占用數(shù)據(jù),在卸載時通過注銷(Unregister)撤出統(tǒng)計(jì)模塊(Topstat)。需要說明的是,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需求設(shè)定資源占用數(shù)據(jù)的推送頻率,通過資源占用數(shù)據(jù)的推送頻率對統(tǒng)計(jì)速度進(jìn)行調(diào)節(jié),即可以通過加大資源占用數(shù)據(jù)的推送頻率提高統(tǒng)計(jì)的速度,也可以通過減小資源占用數(shù)據(jù)的推送頻率降低統(tǒng)計(jì)的速度。例如,當(dāng)一個連接收到數(shù)據(jù)包的時候,觀察組件(Observer)就可以推送(push)數(shù)量為1的資源占用數(shù)據(jù),也可以累加收到一個閥值才推送(push),如推送(push)數(shù)量為100的資源占用數(shù)據(jù)。一般情況下,業(yè)務(wù)對象一直在應(yīng)用,其對應(yīng)的資源占用數(shù)據(jù)是持續(xù)的,則在本申請實(shí)施例中,可以并發(fā)多個獲取業(yè)務(wù)對象的資源占用數(shù)據(jù),持續(xù)獲取一個業(yè)務(wù)對象的多個資源占用數(shù)據(jù)。步驟102,針對每個資源占用數(shù)據(jù),在所述業(yè)務(wù)對象對應(yīng)的統(tǒng)計(jì)時間段內(nèi),將所述資源占用數(shù)據(jù)累積至預(yù)設(shè)的存儲對象中;如圖2所示,本申請實(shí)施例可以在觀察組件(Observer)加載時,在內(nèi)核層(Kernel)中為該觀察組件(Observer)注冊存儲對象(Object)。在存儲對象(Object)中可以保存每個業(yè)務(wù)對象的歷史信息、統(tǒng)計(jì)時間戳、累加值等上下文。在本申請實(shí)施例中,為了適應(yīng)不同的業(yè)務(wù)需求,可以為每種業(yè)務(wù)的統(tǒng)計(jì)設(shè)定統(tǒng)計(jì)時間段(Period),在該統(tǒng)計(jì)時間段(Period)內(nèi)累積資源占用數(shù)據(jù)至存儲對象(Object)中。統(tǒng)計(jì)時間段(Period)是邏輯意義上的計(jì)量單位,其可以為任意的時間點(diǎn)之間的時間范圍,在一個時間軸(TimeLine)上,可以包括一個或多個連續(xù)的統(tǒng)計(jì)時間段(Period)。如圖3A所示,在時間軸300上,包括連續(xù)的統(tǒng)計(jì)時間段(Period)301、統(tǒng)計(jì)時間段(Period)302。在實(shí)際應(yīng)用中,每個統(tǒng)計(jì)時間段(Period)可以包括連續(xù)的N個子統(tǒng)計(jì)時間段(Sub),所述存儲對象(Object)可以具有N個子存儲對象,一個子存儲對象可以存儲一個子統(tǒng)計(jì)時間段(Sub)內(nèi)的資源占用數(shù)據(jù),N為正整數(shù)。需要說明的是,存儲對象(Object)可以采用bitmap等數(shù)組實(shí)現(xiàn)類似環(huán)形隊(duì)列,循環(huán)存儲子統(tǒng)計(jì)時間段(Sub)所存儲的資源占用數(shù)據(jù)。即存儲對象(Object)中的子統(tǒng)計(jì)時間段(Sub)所存儲的資源占用數(shù)據(jù)可以屬于同一個統(tǒng)計(jì)時間段(Period),也可以屬于不同的統(tǒng)計(jì)時間段(Period),本申請實(shí)施例對此不加以限制。例如,如圖3B所示,統(tǒng)計(jì)時間段(Period)301包括連續(xù)的子統(tǒng)計(jì)時間段(Sub)3011和子統(tǒng)計(jì)時間段(Sub)3012,統(tǒng)計(jì)時間段(Period)302包括連續(xù)的子統(tǒng)計(jì)時間段(Sub)3021和子統(tǒng)計(jì)時間段(Sub)3022。存儲對象(Object)305包括子存儲對象3051和子存儲對象3052,子存儲對象3051可以存儲子統(tǒng)計(jì)時間段(Sub)3011、子統(tǒng)計(jì)時間段(Sub)3012、子統(tǒng)計(jì)時間段(Sub)3021和子統(tǒng)計(jì)時間段(Sub)3022中任一時間段的資源占用數(shù)據(jù),子存儲對象3052也可以存儲子統(tǒng)計(jì)時間段(Sub)3011、子統(tǒng)計(jì)時間段(Sub)3012、子統(tǒng)計(jì)時間段(Sub)3021和子統(tǒng)計(jì)時間段(Sub)3022中任一時間段的資源占用數(shù)據(jù)。此外,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需要,對存儲對象(Object)中的子存儲對象數(shù)量進(jìn)行調(diào)整,以適應(yīng)不同業(yè)務(wù)的統(tǒng)計(jì)精度的需要。在本申請的一種優(yōu)選實(shí)施例中,步驟102可以包括如下子步驟:子步驟S11,判斷所述資源占用數(shù)據(jù)所屬的子統(tǒng)計(jì)時間段;在本申請實(shí)施例中,以更細(xì)尺度的子統(tǒng)計(jì)時間段(Sub)累積資源占用 數(shù)據(jù),可以平滑累積的資源占用數(shù)據(jù),提高統(tǒng)計(jì)的準(zhǔn)確率,避免隨著統(tǒng)計(jì)的窗口滑動會出現(xiàn)數(shù)據(jù)突然升高或者降低的情況。在本申請實(shí)施例的一種優(yōu)選示例中,所述資源占用數(shù)據(jù)可以具有關(guān)聯(lián)的推送時間戳,所述子存儲對象中可以具有關(guān)聯(lián)的統(tǒng)計(jì)時間戳;其中,該推送時間戳可以在推送該資源占用數(shù)據(jù)時打上,即推送該資源占用數(shù)據(jù)的時間,也可以在接收該資源占用數(shù)據(jù)時打上,即接收該資源占用數(shù)據(jù)的時間;該統(tǒng)計(jì)時間戳可以在首次將資源占用數(shù)據(jù)寫入該子存儲對象時打上,即表征上一子統(tǒng)計(jì)時間段(Sub)的結(jié)束時間、當(dāng)前子統(tǒng)計(jì)時間段(Sub)的初始時間。則在本示例中,子步驟S11可以包括如下子步驟:子步驟S111,計(jì)算所述推送時間戳與最新的統(tǒng)計(jì)時間戳之間的第一時間差;子步驟S112,判斷所述第一時間是否大于與所述子統(tǒng)計(jì)時間段值相等的統(tǒng)計(jì)時間閾值;若是,則執(zhí)行子步驟S113,若否,則執(zhí)行子步驟S114;子步驟S113,確認(rèn)所述資源占用數(shù)據(jù)屬于下一子統(tǒng)計(jì)時間段;子步驟S114,確認(rèn)所述資源占用數(shù)據(jù)屬于當(dāng)前子統(tǒng)計(jì)時間段。以Linux系統(tǒng)為例,可以以jiffies(全局變量)計(jì)算時間戳,時鐘中斷處理會更新jiffies(全局變量)。假設(shè),對于1ms,jiffies(全局變量)可以增加1,統(tǒng)計(jì)時間戳可以轉(zhuǎn)換成jiffies,子統(tǒng)計(jì)時間段(Sub)的jiffies相當(dāng)于10,即統(tǒng)計(jì)時間閾值為10ms,那么判斷的時候,可以比較最新的統(tǒng)計(jì)時間戳和當(dāng)前推送時間戳的差值是不是小于或等于10,小于或等于10就表示還在最新統(tǒng)計(jì)時間戳所對應(yīng)的子統(tǒng)計(jì)時間段(Sub),即當(dāng)前子統(tǒng)計(jì)時間段(Sub)內(nèi),否則,可以認(rèn)為在當(dāng)前子統(tǒng)計(jì)時間段(Sub)相鄰的子統(tǒng)計(jì)時間段(Sub),即下一子統(tǒng)計(jì)時間段(Sub)內(nèi)。例如,如圖3B所示,若子統(tǒng)計(jì)時間段(Sub)3011關(guān)聯(lián)最新統(tǒng)計(jì)時間戳,該最新統(tǒng)計(jì)時間戳與當(dāng)前資源占用數(shù)據(jù)的推送時間戳之差大于統(tǒng)計(jì)時間 閾值,則當(dāng)前資源占用數(shù)據(jù)屬于子統(tǒng)計(jì)時間段(Sub)3012,否則,當(dāng)前資源占用數(shù)據(jù)屬于子統(tǒng)計(jì)時間段(Sub)3011。子步驟S12,當(dāng)所述資源占用數(shù)據(jù)屬于當(dāng)前子統(tǒng)計(jì)時間段時,將所述資源占用數(shù)據(jù)累加至所述子統(tǒng)計(jì)時間段對應(yīng)的子存儲對象中。若資源占用數(shù)據(jù)屬于當(dāng)前子統(tǒng)計(jì)時間段,則可以直接將其繼續(xù)在該子統(tǒng)計(jì)時間段對應(yīng)的子存儲對象中累加。本申請實(shí)施例所指“累加”,是累積的方式之一,可以為該子存儲對象在先已經(jīng)存儲資源占用數(shù)據(jù),當(dāng)前資源占用數(shù)據(jù)可以在在先存儲的資源占用數(shù)據(jù)的基礎(chǔ)上累加。例如,如圖3B所示,子存儲對象3051已經(jīng)存儲有子統(tǒng)計(jì)時間段(Sub)3011內(nèi)的資源占用數(shù)據(jù),若當(dāng)前資源占用數(shù)據(jù)屬于子統(tǒng)計(jì)時間段(Sub)3011,則可以在子存儲對象3051存儲的資源占用數(shù)據(jù)的基礎(chǔ)上進(jìn)行累加。在本申請的一種優(yōu)選實(shí)施例中,步驟102還可以包括如下子步驟:子步驟S13,當(dāng)所述資源占用數(shù)據(jù)屬于下一子統(tǒng)計(jì)時間段時,為所述子統(tǒng)計(jì)時間段分配子存儲對象;子步驟S14,將所述資源占用數(shù)據(jù)更新至所述子存儲對象中。若資源占用數(shù)據(jù)屬于下一子統(tǒng)計(jì)時間段,則可以為下一子統(tǒng)計(jì)時間段分配子存儲對象。在本申請實(shí)施例中,分配的情形主要有兩種:其中一種情形,分配新的子存儲對象,即該子存儲對象中在先沒有存儲資源占用數(shù)據(jù);在這種情形中,“更新”是累積的方式之一,可以指當(dāng)前資源占用數(shù)據(jù)可以直接寫入分配的子存儲對象中。例如,如圖3B所示,子存儲對象3051已經(jīng)存儲有子統(tǒng)計(jì)時間段(Sub)3011內(nèi)的資源占用數(shù)據(jù),子存儲對象3052沒有存儲資源占用數(shù)據(jù),若當(dāng)前資源占用數(shù)據(jù)屬于子統(tǒng)計(jì)時間段(Sub)3012,則可以為子統(tǒng)計(jì)時間段(Sub)3012分配子存儲對象3052,作為初始的資源占用數(shù)據(jù)直接寫入子存儲對象3052中。另外一種情形,分配舊的子存儲對象,即該子存儲對象中在先存儲有資源占用數(shù)據(jù);其中,該舊的子存儲對象可以為(統(tǒng)計(jì)時間戳)最舊的子存儲對象,即在上一統(tǒng)計(jì)時間段(Period)中,排序小于等于下一子統(tǒng)計(jì)時間段(Sub)的子統(tǒng)計(jì)時間段(Sub)。在這種情形中,“更新”是累積的方式之一,可以指刪除子存儲對象在先累積的資源占用數(shù)據(jù)并寫入當(dāng)前資源占用數(shù)據(jù),或者,當(dāng)前資源占用數(shù)據(jù)可以寫入子存儲對象中替換在先累積的資源占用數(shù)據(jù)。例如,如圖3B所示,子存儲對象3051已經(jīng)存儲有子統(tǒng)計(jì)時間段(Sub)3011內(nèi)的資源占用數(shù)據(jù),子存儲對象3052已經(jīng)存儲有子統(tǒng)計(jì)時間段(Sub)3012內(nèi)的資源占用數(shù)據(jù);若當(dāng)前資源占用數(shù)據(jù)屬于子統(tǒng)計(jì)時間段(Sub)3021,則可以為子統(tǒng)計(jì)時間段(Sub)3021分配子存儲對象3051,將當(dāng)前資源占用數(shù)據(jù)更新至存儲對象3051中,替換子統(tǒng)計(jì)時間段(Sub)3011內(nèi)的資源占用數(shù)據(jù);再者,若當(dāng)前資源占用數(shù)據(jù)屬于子統(tǒng)計(jì)時間段(Sub)3022,則可以為子統(tǒng)計(jì)時間段(Sub)3022分配子存儲對象3052,將當(dāng)前資源占用數(shù)據(jù)更新至存儲對象3052中,替換子統(tǒng)計(jì)時間段(Sub)3012內(nèi)的資源占用數(shù)據(jù)。在本申請的一種優(yōu)選實(shí)施例中,步驟102還可以包括如下子步驟:子步驟S15,將所述資源占用數(shù)據(jù)關(guān)聯(lián)的推送時間戳設(shè)置為統(tǒng)計(jì)時間戳。在本申請實(shí)施例中,若為子統(tǒng)計(jì)時間段(Sub)分配子存儲對象,則當(dāng)前資源占用數(shù)據(jù)的推送時間戳可以設(shè)置為統(tǒng)計(jì)時間戳,用于后續(xù)的資源占用數(shù)據(jù)所屬的子統(tǒng)計(jì)時間段的判斷。當(dāng)然,上述存儲對象(Object)的類似環(huán)形隊(duì)列只是作為示例,在實(shí)施本申請實(shí)施例時,可以根據(jù)實(shí)際情況設(shè)置其他存儲方式,以保存子統(tǒng)計(jì)時間段(Sub)中的資源占用數(shù)據(jù),本申請實(shí)施例對此不加以限制。另外,除了上述存儲方式外,本領(lǐng)域技術(shù)人員還可以根據(jù)實(shí)際需要采用其它其他存儲方式,以保存子統(tǒng)計(jì)時間段(Sub)中的資源占用數(shù)據(jù),本申請實(shí)施例對此也不加以限制。步驟103,在所述業(yè)務(wù)對象對應(yīng)的更新時間段內(nèi),對在所述存儲對象中已累積的資源占用數(shù)據(jù)進(jìn)行排序;在本申請實(shí)施例中,為了適應(yīng)不同的業(yè)務(wù)需求,可以為每種業(yè)務(wù)的統(tǒng)計(jì)設(shè)定更新時間段(Delay)。更新時間段(Delay)是邏輯意義上的更新單位,其可以為任意的時間點(diǎn)之間的時間范圍,在一個時間軸(TimeLine)上,可以包括一個或多個連續(xù)的更新時間段(Delay)。需要說明的是,統(tǒng)計(jì)時間段(Period)一般大于或等于更新時間段(Delay),兩者可以是相交的關(guān)系。如圖3A所示,在時間軸300上,包括連續(xù)的統(tǒng)計(jì)時間段(Period)301、統(tǒng)計(jì)時間段(Period)302,也包括連續(xù)的更新時間段(Delay)303、更新時間段(Delay)304。將資源占用數(shù)據(jù)累積至存儲對象(Object)的上下文一般是覆蓋幾個字段即可,操作量少,占用資源也少;而對已累積的資源占用數(shù)據(jù)進(jìn)行排序需要排序、遍歷、插入、刪除等操作,比資源占用數(shù)據(jù)的累積復(fù)雜的多,占用資源也較多。因此,設(shè)置了更新時間段(Delay)之后,通過調(diào)節(jié)(如加大)更新時間段(Delay)可以大大減少操作量,大大降低資源消耗。例如,有時候連接的流量大,通過加大更新時間段(Delay),基本上也不會影響統(tǒng)計(jì)的精確度。當(dāng)然,有些業(yè)務(wù)對象,可能沒有這么大的流量,那甚至設(shè)置更新時間段(Delay)為0,即每次都不僅僅更新存儲對象(Object),也可以進(jìn)行排序,本申請實(shí)施例對此不加以限制。在本申請的一種優(yōu)選實(shí)施例中,步驟103可以包括如下子步驟:子步驟S21,判斷所述資源占用數(shù)據(jù)所屬的更新時間段;每一個更新時間段(Delay)表征一個更新周期,在當(dāng)前更新周期內(nèi),則繼續(xù)累積,不進(jìn)行排序,若當(dāng)前更新周期已結(jié)束,則進(jìn)行排序。在本申請實(shí)施例的一種優(yōu)選示例中,所述資源占用數(shù)據(jù)可以具有關(guān)聯(lián)的推送時間戳,所述存儲對象(Object)中可以具有關(guān)聯(lián)的更新時間戳;其中,該更新時間戳可以在對存儲對象(Object)中的資源占用數(shù)據(jù)進(jìn)行排序時打上,即表征上一更新時間段(Delay)的結(jié)束時間、當(dāng)前更新時 間段(Delay)的初始時間。則在本示例中,子步驟S21可以包括如下子步驟:子步驟S211,計(jì)算所述推送時間戳與最新的更新時間戳之間的第二時間差;子步驟S212,判斷所述第二時間差是否大于與所述更新時間段值相等的更新時間閾值;若是,則執(zhí)行子步驟S213,若否,則執(zhí)行子步驟S214;子步驟S213,確認(rèn)所述資源占用數(shù)據(jù)屬于下一更新時間段;子步驟S214,確認(rèn)所述資源占用數(shù)據(jù)屬于當(dāng)前更新時間段。以Linux系統(tǒng)為例,可以以jiffies(全局變量)計(jì)算時間戳,時鐘中斷處理會更新jiffies(全局變量)。假設(shè),對于1ms,jiffies(全局變量)可以增加1,更新時間戳可以轉(zhuǎn)換成jiffies,更新時間段(Delay)的jiffies相當(dāng)于100,即更新時間閾值為100ms,那么在判斷的時候,可以比較最新的統(tǒng)計(jì)時間戳和當(dāng)前推送時間戳的差值是不是小于或等于100,小于或等于100就表示還在最新的更新時間戳所對應(yīng)的更新時間段(Delay),否則,可以認(rèn)為在當(dāng)前更新時間段(Delay)相鄰的更新時間段(Delay),即下一更新時間段(Delay)內(nèi)。若當(dāng)前資源占用數(shù)據(jù)在當(dāng)前更新時間段(Delay)中,則可以表示在當(dāng)前更新周期內(nèi),若當(dāng)前資源占用數(shù)據(jù)在下一更新時間段(Delay)中,即當(dāng)前更新周期已結(jié)束。子步驟S22,當(dāng)所述資源占用數(shù)據(jù)屬于下一更新時間段時,將在所述業(yè)務(wù)對象對應(yīng)的更新時間段內(nèi)內(nèi),所述存儲對象中已累積的資源占用數(shù)據(jù)寫入所述資源占用數(shù)據(jù)對應(yīng)的業(yè)務(wù)統(tǒng)計(jì)表中;子步驟S23,在所述業(yè)務(wù)統(tǒng)計(jì)表中獲得排序在前的一個或多個資源占用數(shù)據(jù)。如圖2所示,在內(nèi)核層中,樣品對象(Sample)對應(yīng)統(tǒng)計(jì)的一整套的業(yè)務(wù)對象,例如,某個虛擬機(jī)到另外一個虛擬機(jī)的流量排序。業(yè)務(wù)統(tǒng)計(jì)表(Table),在概念上從屬于Sample(樣品對象),即,一個樣品對象(Sample)可以包括一個或多個業(yè)務(wù)統(tǒng)計(jì)表(Table),例如,某個 業(yè)務(wù)統(tǒng)計(jì)表(Table)是基于每秒的包數(shù)的排序,某個業(yè)務(wù)統(tǒng)計(jì)表(Table)是基于每秒的字節(jié)數(shù)的排序等等。每個業(yè)務(wù)統(tǒng)計(jì)表(Table)都可以按照其統(tǒng)計(jì)的業(yè)務(wù)需求,設(shè)置更新時間段(Delay)。在實(shí)際應(yīng)用中,業(yè)務(wù)統(tǒng)計(jì)表(Table)可以是一個紅黑樹,或者,其他的統(tǒng)計(jì)友好的數(shù)據(jù)結(jié)構(gòu),本申請實(shí)施例對此不加以限制。在本申請實(shí)施例中,Observer在調(diào)用推送(push)接口推送資源占用數(shù)據(jù)時,該推送(push)接口中包括了該Observer在創(chuàng)建的時候的業(yè)務(wù)統(tǒng)計(jì)表(Table)的ID(如指針),具體更新到對應(yīng)的業(yè)務(wù)統(tǒng)計(jì)表(Table)中進(jìn)行排序。一般情況下,業(yè)務(wù)統(tǒng)計(jì)表(Table)的數(shù)量是有限的,如對百萬級別的連接進(jìn)行流量統(tǒng)計(jì),可以將其中一百個連接的流量統(tǒng)計(jì)寫入業(yè)務(wù)統(tǒng)計(jì)表(Table)中。將存儲對象(Object)中已累積的資源占用數(shù)據(jù)寫入資源占用數(shù)據(jù)對應(yīng)的業(yè)務(wù)統(tǒng)計(jì)表(Table)中,可以指將存儲對象(Object)里存儲的一些字段更新到業(yè)務(wù)統(tǒng)計(jì)表(Table),若此次更新的已累積的資源占用數(shù)據(jù)的值比業(yè)務(wù)統(tǒng)計(jì)表(Table)表里面的最小值大,則在合適的位置,把新的值更新到業(yè)務(wù)統(tǒng)計(jì)表(Table)表里,同時把存儲對象(Object)其他的字段信息也更新到表里,比如,描述、存儲對象(Object)、更新時間戳等等。需要說明的是,本申請實(shí)施例所指“排序”,可以為順序排序,也可以為倒序排序,例如,統(tǒng)計(jì)百萬級別的連接中流量最高的前100個連接,或者,統(tǒng)計(jì)百萬級別的連接中流量最低的前100個連接,本申請實(shí)施例對此不加以限制。在本申請的一種優(yōu)選實(shí)施例中,子步驟S22可以包括如下子步驟:子步驟S221,計(jì)算屬于所述業(yè)務(wù)對象對應(yīng)的更新時間段的子統(tǒng)計(jì)時間段,所對應(yīng)的子存儲對象中已累積的資源占用數(shù)據(jù)之和;子步驟S222,將所述已累積的資源占用數(shù)據(jù)之和寫入所述資源占用數(shù)據(jù)對應(yīng)的業(yè)務(wù)統(tǒng)計(jì)表中。在本申請實(shí)施例中,若應(yīng)用統(tǒng)計(jì)時間段(Period)細(xì)分子統(tǒng)計(jì)時間段(Sub)的方式,則可以將屬于更新時間段(Delay)內(nèi)的子統(tǒng)計(jì)時間段(Sub)所累積的資源占用數(shù)據(jù),對業(yè)務(wù)統(tǒng)計(jì)表(Table)進(jìn)行更新。例如,如圖3A和圖3B所示,若更新時間段(Delay)303包括子統(tǒng)計(jì)時間段(Sub)3012和子統(tǒng)計(jì)時間段(Sub)3021,則在更新時間段(Delay)303內(nèi)進(jìn)行更新時,可以將子統(tǒng)計(jì)時間段(Sub)3012和子統(tǒng)計(jì)時間段(Sub)3021內(nèi)已累積的資源占用數(shù)據(jù)之和(sum),將該資源占用數(shù)據(jù)之和(sum)寫入業(yè)務(wù)統(tǒng)計(jì)表中。在本申請的一種優(yōu)選實(shí)施例中,步驟203還可以包括如下子步驟:子步驟S24,將所述資源占用數(shù)據(jù)關(guān)聯(lián)的推送時間設(shè)置為更新時間戳。在本申請實(shí)施例中,若對業(yè)務(wù)統(tǒng)計(jì)表(Table)進(jìn)行了更新,則可以將當(dāng)前資源占用數(shù)據(jù)的推送時間戳設(shè)置為更新時間戳,用于后續(xù)的資源占用數(shù)據(jù)判斷是否更新業(yè)務(wù)統(tǒng)計(jì)表(Table)。步驟104,加載排序后的一個或多個資源占用數(shù)據(jù)。在具體實(shí)現(xiàn)中,可以加載排序后的資源占用數(shù)據(jù),以用于監(jiān)控、檢測等各種用途。在本申請的一種優(yōu)選實(shí)施例中,在內(nèi)核層中存儲有樣品對象,所述樣品對象包括一個或多個業(yè)務(wù)統(tǒng)計(jì)表,所述業(yè)務(wù)統(tǒng)計(jì)表記載有排序的結(jié)果;則在本申請實(shí)施例中,步驟104可以包括如下子步驟:子步驟S31,在應(yīng)用層中通過預(yù)設(shè)的接口,讀取位于內(nèi)核層中的樣品對象,以獲得一個或多個業(yè)務(wù)統(tǒng)計(jì)表;子步驟S32,顯示在所述一個或多個業(yè)務(wù)統(tǒng)計(jì)表中,排序在前的一個或多個資源占用數(shù)據(jù)。如圖2所示,在應(yīng)用層(User)可以配置監(jiān)控子系統(tǒng)(Monitor)、采集器(Collector)等各種應(yīng)用模塊。導(dǎo)出文件系統(tǒng)(Exportfilesystem,Exportf-s)是統(tǒng)計(jì)數(shù)據(jù)導(dǎo)出的統(tǒng)一接口,內(nèi)核一般可以通過,在本申請實(shí)施例中,sysfs接口或者proc接口統(tǒng)一暴露給上層監(jiān)控子系統(tǒng)(Monitor)。進(jìn)一步而言,業(yè)務(wù)統(tǒng)計(jì)表(Table)里面包含proc接口紅黑樹,具體的存儲對象(Object)的信息、其他參數(shù)(更新時間段(Delay)等)信息。proc接口是業(yè)務(wù)統(tǒng)計(jì)表(Table)對外導(dǎo)出統(tǒng)計(jì)數(shù)據(jù)的接口,監(jiān)控子系統(tǒng)可以實(shí)時讀取這個文件來呈現(xiàn)當(dāng)前table的統(tǒng)計(jì)信息。在應(yīng)用層(User)中,應(yīng)用模塊可以通過直接讀取Topstat的導(dǎo)出文件系統(tǒng)(Exportf-s),如sysfs/proc等,中相應(yīng)的文件來獲得統(tǒng)計(jì)數(shù)據(jù),這個過程被稱為快照(Snapshot),讀取文件會觸發(fā)內(nèi)核線程來掃描每個CPU上的統(tǒng)計(jì)結(jié)果并合并最終的統(tǒng)計(jì)數(shù)據(jù)(即排序后的結(jié)果)。樣品對象(Sample)和業(yè)務(wù)統(tǒng)計(jì)表(Table)都會在導(dǎo)出文件系統(tǒng)(Exportf-s)中有對應(yīng)的目錄或者文件,即,Topstat針對Observer注冊的樣品對象(Sample)中包含的每個業(yè)務(wù)統(tǒng)計(jì)表(Table),都可以有一個文件系統(tǒng)(Exportf-s)下的文件,讀取這個文件即刻獲取了統(tǒng)計(jì)數(shù)據(jù)。例如,每條連接的信息(如源IP端口,目的IP端口),以及該連接的pps值(packetspersecond,每秒數(shù)據(jù)包)。通常,業(yè)務(wù)統(tǒng)計(jì)表(Table)是樣品對象(Sample)的子目錄。而且,樣品對象(Sample)可以通過快照(Snapshot)暴露給上層的監(jiān)控子系統(tǒng)(Monitor)最終的需要讀取的最終的統(tǒng)計(jì)數(shù)據(jù)(即排序后的結(jié)果)的文件。需要說明的是,本申請實(shí)施例可以基于內(nèi)核層(Kernel)進(jìn)行統(tǒng)計(jì),即在內(nèi)核層中執(zhí)行步驟101、步驟102和步驟103,也可以基于應(yīng)用層(User)進(jìn)行統(tǒng)計(jì),即在內(nèi)核層中執(zhí)行步驟101、步驟102和步驟103,本申請實(shí)施例對此不加以限制。在本申請的一種優(yōu)選實(shí)施例中,該方法還可以包括如下步驟:步驟205,在熱升級時,將所述存儲對象駐留在內(nèi)存中;步驟206,注銷所述業(yè)務(wù)對象對應(yīng)的樣品對象和所述樣品對象包括的一個或多個業(yè)務(wù)統(tǒng)計(jì)表,其中,所述業(yè)務(wù)統(tǒng)計(jì)表記載有排序的結(jié)果。由于產(chǎn)品的功能一般是在不斷的豐富,為了不中斷服務(wù),一般會對業(yè)務(wù)模塊進(jìn)行熱升級,即不停機(jī)升級。在熱升級中,存儲對象(Object)中包含統(tǒng)計(jì)需要的上下文信息將跟隨業(yè)務(wù)對象的生命周期。由于本申請實(shí)施例將統(tǒng)計(jì)與業(yè)務(wù)邏輯主體分離開來,主業(yè)務(wù)邏輯也可以將被統(tǒng)計(jì)對象隔離開來,這樣在升級的時候,存儲對象(Object)可以駐留在內(nèi)存空間。具體而言,每個Observer加載的時候會注冊相應(yīng)的樣品對象(Sample)、業(yè)務(wù)統(tǒng)計(jì)表(Table)、存儲對象(Object)等。在熱升級中,存儲對象(Object)可以從Topstat的主體移出(unplug),并注銷相應(yīng)的樣品對象(Sample)和業(yè)務(wù)統(tǒng)計(jì)表(Table),此時存儲對象(Object)的上下文仍然是存在的,內(nèi)存也不會被釋放。其中,注銷可以指調(diào)用接口,通知Topstat刪除相應(yīng)的樣品對象(Sample)和業(yè)務(wù)統(tǒng)計(jì)表(Table)的數(shù)據(jù)結(jié)構(gòu),并清理掉內(nèi)存。升級后的業(yè)務(wù)模塊可以通過類似塞(plug)的方式拿到存儲對象(Object)的信息,并獲取統(tǒng)計(jì)需要的上下文信息,如統(tǒng)計(jì)時間段(Period)、子統(tǒng)計(jì)時間段(Sub)、sum(Sub的和)、統(tǒng)計(jì)時間戳、更新時間段(Delay)、count(資源占用數(shù)據(jù)的推送次數(shù))、描述信息(描述這個Object的字符串)等等,推送資源占用數(shù)據(jù)。需要說明的是,對于方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請實(shí)施例并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本申請實(shí)施例,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作并不一定是本申請實(shí)施例所必須的。參照圖4,示出了本申請的一種業(yè)務(wù)對象的信息加載裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:數(shù)據(jù)獲取模塊401,用于獲取一個或多個業(yè)務(wù)對象對應(yīng)的一個或多個資源占用數(shù)據(jù);數(shù)據(jù)累積模塊402,用于針對每個資源占用數(shù)據(jù),在所述業(yè)務(wù)對象對應(yīng)的統(tǒng)計(jì)時間段內(nèi),將所述資源占用數(shù)據(jù)累積至預(yù)設(shè)的存儲對象中;數(shù)據(jù)排序模塊403,用于在所述業(yè)務(wù)對象對應(yīng)的更新時間段內(nèi),對在所述存儲對象中已累積的資源占用數(shù)據(jù)進(jìn)行排序;數(shù)據(jù)加載模塊404,用于加載排序后的一個或多個資源占用數(shù)據(jù)。在具體實(shí)現(xiàn)中,在一個時間軸上可以包括一個或多個連續(xù)的統(tǒng)計(jì)時間段,每個統(tǒng)計(jì)時間段可以包括連續(xù)的N個子統(tǒng)計(jì)時間段,所述存儲對象可以具有N個子存儲對象,一個子存儲對象可以存儲一個子統(tǒng)計(jì)時間段內(nèi)的資源占用數(shù)據(jù),N為正整數(shù)。在本申請的一種優(yōu)選實(shí)施例中,所述數(shù)據(jù)累積模塊402可以包括如下子模塊:子統(tǒng)計(jì)時間段判斷子模塊,用于判斷所述資源占用數(shù)據(jù)所屬的子統(tǒng)計(jì)時間段;數(shù)據(jù)累加子模塊,用于在所述資源占用數(shù)據(jù)屬于當(dāng)前子統(tǒng)計(jì)時間段時,將所述資源占用數(shù)據(jù)累加至所述子統(tǒng)計(jì)時間段對應(yīng)的子存儲對象中。在本申請的一種優(yōu)選實(shí)施例中,所述數(shù)據(jù)累積模塊402還可以包括如下子模塊:子存儲對象分配子模塊,用于在所述資源占用數(shù)據(jù)屬于下一子統(tǒng)計(jì)時間段時,為所述子統(tǒng)計(jì)時間段分配子存儲對象;數(shù)據(jù)更新子模塊,用于將所述資源占用數(shù)據(jù)更新至所述子存儲對象中。在本申請實(shí)施例的一種優(yōu)選示例中,所述資源占用數(shù)據(jù)可以具有關(guān)聯(lián)的推送時間戳,所述子存儲對象中可以具有關(guān)聯(lián)的統(tǒng)計(jì)時間戳;所述子統(tǒng)計(jì)時間段判斷子模塊可以包括如下子模塊:第一時間差計(jì)算子模塊,用于計(jì)算所述推送時間戳與最新的統(tǒng)計(jì)時間戳之間的第一時間差;統(tǒng)計(jì)時間閾值判斷子模塊,用于判斷所述第一時間是否大于與所述子統(tǒng)計(jì)時間段值相等的統(tǒng)計(jì)時間閾值;若是,則調(diào)用第一確認(rèn)子模塊,若否,則調(diào)用第二確認(rèn)子模塊;第一確認(rèn)子模塊,用于確認(rèn)所述資源占用數(shù)據(jù)屬于下一子統(tǒng)計(jì)時間段;第二確認(rèn)子模塊,用于確認(rèn)所述資源占用數(shù)據(jù)屬于當(dāng)前子統(tǒng)計(jì)時間段。在本申請的一種優(yōu)選實(shí)施例中,所述數(shù)據(jù)累積模塊402還可以包括如下子模塊:統(tǒng)計(jì)時間戳設(shè)置子模塊,用于將所述資源占用數(shù)據(jù)關(guān)聯(lián)的推送時間戳設(shè)置為統(tǒng)計(jì)時間戳。在本申請的一種優(yōu)選實(shí)施例中,所述數(shù)據(jù)排序模塊403可以包括如下子模塊:更新時間段判斷子模塊,用于判斷所述資源占用數(shù)據(jù)所屬的更新時間段;業(yè)務(wù)統(tǒng)計(jì)表寫入子模塊,用于在所述資源占用數(shù)據(jù)屬于下一更新時間段時,將在所述業(yè)務(wù)對象對應(yīng)的更新時間段內(nèi)內(nèi),所述存儲對象中已累積的資源占用數(shù)據(jù)寫入所述資源占用數(shù)據(jù)對應(yīng)的業(yè)務(wù)統(tǒng)計(jì)表中;排序獲得子模塊,用于在所述業(yè)務(wù)統(tǒng)計(jì)表中獲得排序在前的一個或多個資源占用數(shù)據(jù)。在本申請實(shí)施例的一種優(yōu)選示例中,所述資源占用數(shù)據(jù)可以具有關(guān)聯(lián)的推送時間戳,所述存儲對象可以具有關(guān)聯(lián)的更新時間戳;所述更新時間段判斷子模塊可以包括如下子模塊:第二時間差計(jì)算子模塊,用于計(jì)算所述推送時間戳與最新的更新時間戳之間的第二時間差;更新時間閾值判斷子模塊,用于判斷所述第二時間差是否大于與所述更新時間段值相等的更新時間閾值;若是,則調(diào)用第三確認(rèn)子模塊,若否,則調(diào)用第四確認(rèn)子模塊;第三確認(rèn)子模塊,用于確認(rèn)所述資源占用數(shù)據(jù)屬于下一更新時間段;第四確認(rèn)子模塊,用于確認(rèn)所述資源占用數(shù)據(jù)屬于當(dāng)前更新時間段。在本申請的一種優(yōu)選實(shí)施例中,所述業(yè)務(wù)統(tǒng)計(jì)表寫入子模塊可以包括如下子模塊:和計(jì)算子模塊,用于計(jì)算屬于所述業(yè)務(wù)對象對應(yīng)的更新時間段的子統(tǒng)計(jì) 時間段,所對應(yīng)的子存儲對象中已累積的資源占用數(shù)據(jù)之和;和寫入子模塊,用于將所述已累積的資源占用數(shù)據(jù)之和寫入所述資源占用數(shù)據(jù)對應(yīng)的業(yè)務(wù)統(tǒng)計(jì)表中。在本申請的一種優(yōu)選實(shí)施例中,所述數(shù)據(jù)排序模塊403還可以包括如下模塊:更新時間戳設(shè)置子模塊,用于將所述資源占用數(shù)據(jù)關(guān)聯(lián)的推送時間設(shè)置為更新時間戳。在本申請的一種優(yōu)選實(shí)施例中,在內(nèi)核層中可以存儲有樣品對象,所述樣品對象可以包括一個或多個業(yè)務(wù)統(tǒng)計(jì)表,所述業(yè)務(wù)統(tǒng)計(jì)表可以記載有排序的結(jié)果;所述數(shù)據(jù)加載模塊404可以包括如下子模塊:樣品對象讀取子模塊,用于在應(yīng)用層中通過預(yù)設(shè)的接口,讀取位于內(nèi)核層中的樣品對象,以獲得一個或多個業(yè)務(wù)統(tǒng)計(jì)表;排序結(jié)果顯示子模塊,用于顯示在所述一個或多個業(yè)務(wù)統(tǒng)計(jì)表中,排序在前的一個或多個資源占用數(shù)據(jù)。在本申請的一種優(yōu)選實(shí)施例中,該裝置還可以包括如下模塊:駐留模塊,用于在熱升級時,將所述存儲對象駐留在內(nèi)存中;注銷模塊,用于注銷所述業(yè)務(wù)對象對應(yīng)的樣品對象和所述樣品對象包括的一個或多個業(yè)務(wù)統(tǒng)計(jì)表,其中,所述業(yè)務(wù)統(tǒng)計(jì)表記載有排序的結(jié)果。對于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。本說明書中的各個實(shí)施例均采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似的部分互相參見即可。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請實(shí)施例的實(shí)施例可提供為方法、裝置、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請實(shí)施例可采用完全硬件實(shí)施例、完全 軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請實(shí)施例可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。在一個典型的配置中,所述計(jì)算機(jī)設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flashRAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、動態(tài)隨機(jī)存取存儲器(DRAM)、其他類型的隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非持續(xù)性的電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。本申請實(shí)施例是參照根據(jù)本申請實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理 終端設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本申請實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請實(shí)施例范圍的所有變更和修改。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。以上對本申請所提供的一種業(yè)務(wù)對象的信息加載方法和一種業(yè)務(wù)對象的信息加載裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本申請的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實(shí)施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3