專利名稱:一種實(shí)時(shí)性能統(tǒng)計(jì)的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及設(shè)備性能統(tǒng)計(jì)技術(shù),特別是指一種對(duì)上網(wǎng)接入設(shè)備實(shí)時(shí)性能統(tǒng)計(jì)的實(shí)現(xiàn)方法。
背景技術(shù):
隨著網(wǎng)絡(luò)的普及和網(wǎng)絡(luò)用戶的增長(zhǎng),與之相關(guān)的承載數(shù)據(jù)業(yè)務(wù)也飛速發(fā)展。運(yùn)營(yíng)商更多的需要依賴網(wǎng)管和維護(hù)系統(tǒng)對(duì)承載設(shè)備的各種性能指標(biāo)進(jìn)行采樣分析,并根據(jù)分析結(jié)果進(jìn)一步調(diào)整和改善現(xiàn)網(wǎng)結(jié)構(gòu),對(duì)網(wǎng)絡(luò)進(jìn)行維護(hù)與管理。
目前,無(wú)論在有線還是無(wú)線分組網(wǎng)中,對(duì)承載設(shè)備上單位時(shí)間內(nèi)用戶接入數(shù)量等性能指標(biāo)的統(tǒng)計(jì),一般采用定時(shí)器的方式來(lái)實(shí)現(xiàn)。具體實(shí)現(xiàn)方案是這樣當(dāng)需要得到某個(gè)承載設(shè)備指定時(shí)長(zhǎng)內(nèi)的統(tǒng)計(jì)數(shù)據(jù)時(shí),系統(tǒng)會(huì)針對(duì)該承載設(shè)備開啟一個(gè)定時(shí)器,在定時(shí)時(shí)間范圍內(nèi),系統(tǒng)對(duì)所有激活用戶數(shù)量進(jìn)行累計(jì)統(tǒng)計(jì),定時(shí)時(shí)間到后,將所統(tǒng)計(jì)的數(shù)據(jù)上報(bào);定時(shí)器自動(dòng)重啟,再進(jìn)行下一時(shí)長(zhǎng)的數(shù)據(jù)統(tǒng)計(jì)。
現(xiàn)有的定時(shí)器統(tǒng)計(jì)方式雖然能完成對(duì)承載設(shè)備的實(shí)時(shí)性能統(tǒng)計(jì),但該方案存在兩個(gè)較大的問(wèn)題第一,數(shù)據(jù)統(tǒng)計(jì)的非連續(xù)性。由于定時(shí)器將連續(xù)的時(shí)間人為劃分為一段一段間隔的時(shí)間,使得所有的統(tǒng)計(jì)值都處于由定時(shí)器分割的間隔時(shí)長(zhǎng)內(nèi),如此就導(dǎo)致統(tǒng)計(jì)結(jié)果不能準(zhǔn)確、真實(shí)反映承載設(shè)備實(shí)際狀態(tài)的現(xiàn)象發(fā)生,尤其是統(tǒng)計(jì)峰值和實(shí)際峰值會(huì)存在很大差異。比如原本屬于一個(gè)實(shí)際峰值的數(shù)據(jù)有可能被定時(shí)器分為兩段,那么,根本看不出當(dāng)前被統(tǒng)計(jì)的承載設(shè)備真正的數(shù)據(jù)峰值在哪里,那么就可能會(huì)產(chǎn)生錯(cuò)誤的統(tǒng)計(jì)結(jié)果,影響對(duì)網(wǎng)絡(luò)的維護(hù)與管理。第二,現(xiàn)有技術(shù)的方案對(duì)每個(gè)要統(tǒng)計(jì)的承載設(shè)備都需要設(shè)置定時(shí)器,而且定時(shí)器工作時(shí)會(huì)頻繁使用,由于定時(shí)器的頻繁使用,會(huì)占用較多的系統(tǒng)資源,從而導(dǎo)致系統(tǒng)性能的降低。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種實(shí)時(shí)性能統(tǒng)計(jì)的實(shí)現(xiàn)方法,不僅能提高對(duì)承載設(shè)備性能統(tǒng)計(jì)的精確度,而且能減少對(duì)系統(tǒng)資源的占用,進(jìn)而提高系統(tǒng)性能。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種實(shí)時(shí)性能統(tǒng)計(jì)的實(shí)現(xiàn)方法,該方法包括檢測(cè)當(dāng)前被統(tǒng)計(jì)的設(shè)備,判斷是否有新激活的用戶事件,如果有,則建立新的記錄項(xiàng)存儲(chǔ)至少包括該事件激活時(shí)刻的相關(guān)用戶信息,并將當(dāng)前所建立的記錄項(xiàng)按激活時(shí)刻與原有記錄項(xiàng)順序排列;否則,繼續(xù)檢測(cè)。
該方法進(jìn)一步包括判斷所有記錄項(xiàng)中每個(gè)記錄項(xiàng)的激活時(shí)刻是否大于預(yù)先設(shè)定的統(tǒng)計(jì)時(shí)長(zhǎng)t,如果是,則刪除當(dāng)前判斷的記錄項(xiàng),否則,保留當(dāng)前判斷的記錄項(xiàng)。
上述方案中,所述記錄項(xiàng)存儲(chǔ)于鏈表節(jié)點(diǎn)中,所有按激活時(shí)刻順序排列的記錄項(xiàng)形成一個(gè)記錄鏈表。
該方法進(jìn)一步包括設(shè)置一記錄當(dāng)前所有記錄項(xiàng)個(gè)數(shù)的計(jì)數(shù)單元,則每次建立新記錄項(xiàng)的同時(shí),更新該計(jì)數(shù)單元的值。則該方法還進(jìn)一步包括每次刪除記錄項(xiàng)的同時(shí),更新該計(jì)數(shù)單元的值。
該方法進(jìn)一步包括設(shè)置一記錄在預(yù)定時(shí)段內(nèi)記錄項(xiàng)個(gè)數(shù)最大值的峰值計(jì)數(shù)單元,所述峰值計(jì)數(shù)單元的值初始化為0。那么,該方法進(jìn)一步包括判斷當(dāng)前計(jì)數(shù)單元的值是否大于峰值計(jì)數(shù)單元的值,如果大于,則更新峰值計(jì)數(shù)單元的值為當(dāng)前計(jì)數(shù)單元的值;否則,不作處理。
上述方案中,所述被統(tǒng)計(jì)設(shè)備為接入設(shè)備;所述激活的用戶事件為用戶接入事件,所述激活時(shí)刻為接入事件的接入時(shí)刻。所述按順序排列為按激活時(shí)刻從大到小的順序排列。
本發(fā)明所提供的實(shí)時(shí)性能統(tǒng)計(jì)的實(shí)現(xiàn)方法,對(duì)承載設(shè)備上單位時(shí)間內(nèi)用戶接入數(shù)量利用用戶接入事件直接更新性能統(tǒng)計(jì)指標(biāo),不僅提高了統(tǒng)計(jì)結(jié)果的實(shí)時(shí)連續(xù)性和準(zhǔn)確性;而且,本發(fā)明省去了對(duì)定時(shí)器的使用,減少了對(duì)系統(tǒng)資源的占用,從而在一定程度上提高了系統(tǒng)性能。
另外,在本發(fā)明中,如果采用維護(hù)一個(gè)數(shù)據(jù)結(jié)構(gòu)的方式來(lái)存放、更新和統(tǒng)計(jì)用戶接入事件信息,操作簡(jiǎn)單方便、易于實(shí)現(xiàn);并且,可根據(jù)需要獲取各種統(tǒng)計(jì)數(shù)據(jù),比如可獲得最新單位時(shí)間內(nèi)接入激活用戶個(gè)數(shù);可獲得某個(gè)時(shí)間段T內(nèi)的接入激活用戶個(gè)數(shù)的峰值;可以獲得某段時(shí)間內(nèi)的平均接入激活用戶個(gè)數(shù)等等。該方法不僅可用于統(tǒng)計(jì)接入事件,同樣可用來(lái)統(tǒng)計(jì)諸如用戶退出事件等其他類型的事件。
本發(fā)明所采用的方案可廣泛應(yīng)用于無(wú)線分組網(wǎng)絡(luò)和有線分組網(wǎng)絡(luò)領(lǐng)域,比如在CDMA 2000的PDSN設(shè)備上實(shí)現(xiàn)對(duì)用戶接入的性能統(tǒng)計(jì)。
圖1為本發(fā)明方法實(shí)現(xiàn)的流程示意圖;圖2為本發(fā)明實(shí)施例中數(shù)據(jù)結(jié)構(gòu)的初始狀態(tài)圖;圖3為本發(fā)明實(shí)施例記錄用戶接入事件的流程示意圖;圖4為本發(fā)明實(shí)施例中插入用戶接入事件的操作過(guò)程示意圖;圖5為本發(fā)明實(shí)施例中刪除用戶接入事件的操作過(guò)程示意圖。
具體實(shí)施例方式
本發(fā)明的基本思想就是檢測(cè)當(dāng)前被統(tǒng)計(jì)的承載設(shè)備,以當(dāng)前激活的用戶事件觸發(fā)信息記錄,并根據(jù)所記錄的信息進(jìn)行各種所需的統(tǒng)計(jì)。這里,可以采用各種方式記錄激活事件的相關(guān)信息,比如采用鏈表、數(shù)組、隊(duì)列等數(shù)據(jù)結(jié)構(gòu),或建立相應(yīng)的激活事件表,將每個(gè)激活事件的相關(guān)信息作為一個(gè)記錄項(xiàng)存儲(chǔ),所述記錄項(xiàng)中存有至少包括對(duì)應(yīng)事件激活時(shí)刻的相關(guān)用戶信息。這里所述的承載設(shè)備可以是接入設(shè)備,則所述激活事件為用戶接入事件。
以接入設(shè)備為例,如圖1所示,本發(fā)明方法的實(shí)現(xiàn)流程包括以下步驟
檢測(cè)當(dāng)前被統(tǒng)計(jì)的接入設(shè)備,判斷是否有新激活的用戶接入事件,如果有,則建立新的記錄項(xiàng)存儲(chǔ)至少包括該事件接入時(shí)刻的相關(guān)用戶信息,并將當(dāng)前所建立的記錄項(xiàng)按接入時(shí)刻與原有記錄項(xiàng)順序排列;否則,繼續(xù)檢測(cè)。這里,所述的順序通常為按從大到小的順序排列,也就是時(shí)間先后的順序,一般排在最前的記錄項(xiàng)為距離當(dāng)前時(shí)刻最近的接入事件的相關(guān)信息。
下面以采用鏈表結(jié)構(gòu)存儲(chǔ)和統(tǒng)計(jì)當(dāng)前被統(tǒng)計(jì)承載設(shè)備的用戶接入事件、統(tǒng)計(jì)時(shí)長(zhǎng)為t,要獲得t時(shí)刻前的用戶接入個(gè)數(shù)C以及峰值Cmax為例,結(jié)合圖2~圖5進(jìn)一步說(shuō)明本發(fā)明的實(shí)現(xiàn)方案。在本實(shí)施例中,Ti表示第i個(gè)用戶接入事件的用戶信息,每個(gè)鏈表節(jié)點(diǎn)Ti中存儲(chǔ)的就是相應(yīng)用戶接入事件的時(shí)刻和相關(guān)信息。
圖2為本實(shí)施例中鏈表結(jié)構(gòu)的初始狀態(tài)示意圖,如圖2所示,鏈表初始態(tài)為空,頭指針指向NULL。此時(shí),計(jì)數(shù)單元C也初始化為0,峰值單元Cmax同樣置0,表示當(dāng)前沒(méi)有用戶接入事件。
如圖3所示,當(dāng)有激活的用戶接入事件時(shí),建立對(duì)應(yīng)當(dāng)前接入事件的鏈表節(jié)點(diǎn)用于存儲(chǔ)當(dāng)前接入事件的相關(guān)信息,其中包括該接入事件的接入時(shí)刻;然后按照接入時(shí)刻將該節(jié)點(diǎn)順序插入記錄鏈表中。比如本實(shí)施例要統(tǒng)計(jì)t時(shí)刻前的用戶接入個(gè)數(shù),那么,鏈表中的節(jié)點(diǎn)T1、T2......Tn中的接入時(shí)刻均小于t,且T1的接入時(shí)刻<T2的接入時(shí)刻<......<Tn的接入時(shí)刻。
具體的接入事件插入過(guò)程,如圖4所示,當(dāng)有激活的用戶接入事件時(shí),首先建立節(jié)點(diǎn)T(n+1)用于存儲(chǔ)當(dāng)前接入事件的接入時(shí)刻和相關(guān)信息;然后,由于T(n+1)對(duì)應(yīng)的接入事件的接入時(shí)刻>Tn的接入時(shí)刻,因此斷開鏈表頭Head中的下一節(jié)點(diǎn)指針當(dāng)前所指的節(jié)點(diǎn)Tn,將鏈表頭Head中的下一節(jié)點(diǎn)指針指向新建節(jié)點(diǎn)T(n+1),并將節(jié)點(diǎn)T(n+1)中的下一節(jié)點(diǎn)指針指向節(jié)點(diǎn)Tn,如此即完成一個(gè)接入事件的順序插入。
同樣,如果鏈表中節(jié)點(diǎn)所對(duì)應(yīng)接入事件的接入時(shí)刻超時(shí),也就是所記錄的接入時(shí)刻與當(dāng)前時(shí)刻的差值超過(guò)了統(tǒng)計(jì)時(shí)長(zhǎng)t,則需要將該超時(shí)的鏈表節(jié)點(diǎn)刪除,具體操作過(guò)程如圖5所示,如果遍歷當(dāng)前記錄鏈表發(fā)現(xiàn)當(dāng)前記錄鏈表中Ti節(jié)點(diǎn)以前的鏈表節(jié)點(diǎn)均超時(shí),則斷開節(jié)點(diǎn)Ti中的下一節(jié)點(diǎn)指針當(dāng)前所指的節(jié)點(diǎn)T(i-1),將節(jié)點(diǎn)Ti中的下一節(jié)點(diǎn)指針指向NULL,如此即可完成超時(shí)節(jié)點(diǎn)的刪除。
在上述記錄、插入或刪除接入事件的過(guò)程中,為了能直接統(tǒng)計(jì)時(shí)長(zhǎng)t內(nèi)的用戶接入個(gè)數(shù),可直接設(shè)置一計(jì)數(shù)單元C,該計(jì)數(shù)單元C的初始值設(shè)為0。每次在鏈表中插入或刪除節(jié)點(diǎn)的同時(shí),更新計(jì)數(shù)單元C的值,那么,當(dāng)前計(jì)數(shù)單元C的值就是從當(dāng)前時(shí)刻起,t時(shí)間段內(nèi)的實(shí)際用戶接入個(gè)數(shù)。
另外,為了統(tǒng)計(jì)用戶接入個(gè)數(shù)的峰值,可以再設(shè)置一峰值計(jì)數(shù)單元Cmax,該峰值計(jì)數(shù)單元Cmax的初始值設(shè)為0。經(jīng)過(guò)每個(gè)統(tǒng)計(jì)時(shí)長(zhǎng)t后,將當(dāng)前計(jì)數(shù)單元C的用戶接入個(gè)數(shù)值與峰值計(jì)數(shù)單元Cmax進(jìn)行比較,如果C>Cmax,則更新峰值計(jì)數(shù)單元Cmax的值,即將峰值計(jì)數(shù)單元Cmax的值更新為計(jì)數(shù)單元C的值,當(dāng)然,在對(duì)應(yīng)的峰值計(jì)數(shù)單元Cmax中還可以同時(shí)記錄該峰值所對(duì)應(yīng)的時(shí)間段,如此,就可以隨時(shí)獲知用戶接入事件在哪個(gè)時(shí)間段處于高峰。
本發(fā)明方法對(duì)Tn時(shí)刻之前T時(shí)間內(nèi)接入用戶數(shù)進(jìn)行統(tǒng)計(jì)時(shí),可采用遍歷鏈表節(jié)點(diǎn)的方式來(lái)實(shí)現(xiàn)。具體做法是取當(dāng)前的系統(tǒng)時(shí)刻Tnow;獲取鏈表結(jié)構(gòu)中第一個(gè)節(jié)點(diǎn)的接入時(shí)刻Tm;判斷Tnow-Tm是否大于T,如果是,則統(tǒng)計(jì)結(jié)果為0,否則,將計(jì)數(shù)單元C的當(dāng)前值作為統(tǒng)計(jì)結(jié)果。
從上述實(shí)施例可以看出,由于本發(fā)明不需要采用定時(shí)器,因此大大減少了對(duì)系統(tǒng)資源的占用,從某種程度上提高了系統(tǒng)性能。而且,本發(fā)明用來(lái)進(jìn)行統(tǒng)計(jì)的時(shí)長(zhǎng)t相當(dāng)于是一個(gè)動(dòng)態(tài)的時(shí)間窗,不會(huì)將時(shí)間分割成段,所以統(tǒng)計(jì)結(jié)果具有實(shí)時(shí)性、連續(xù)性,更具精確性,通過(guò)本發(fā)明的方法進(jìn)行性能統(tǒng)計(jì),可根據(jù)需要準(zhǔn)確得到各種統(tǒng)計(jì)信息,比如獲得最新的單位時(shí)間t內(nèi)接入激活用戶個(gè)數(shù);獲得某段時(shí)間內(nèi)接入激活用戶個(gè)數(shù)的峰值;獲得某段時(shí)間內(nèi)的平均接入激活用戶個(gè)數(shù)。
本發(fā)明可采用任何類型的數(shù)據(jù)結(jié)構(gòu)來(lái)存放用戶接入事件的信息,比如采用鏈表、數(shù)組、隊(duì)列等等,并直接通過(guò)對(duì)數(shù)據(jù)結(jié)構(gòu)的維護(hù)來(lái)更新性能統(tǒng)計(jì)的記錄,對(duì)用戶接入事件的各種統(tǒng)計(jì)均可以通過(guò)遍歷數(shù)據(jù)結(jié)構(gòu)中記錄的內(nèi)容來(lái)完成,操作既簡(jiǎn)單方便,又靈活多樣。
總之,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種實(shí)時(shí)性能統(tǒng)計(jì)的實(shí)現(xiàn)方法,其特征在于,該方法包括檢測(cè)當(dāng)前被統(tǒng)計(jì)的設(shè)備,判斷是否有新激活的用戶事件,如果有,則建立新的記錄項(xiàng)存儲(chǔ)至少包括該事件激活時(shí)刻的相關(guān)用戶信息,并將當(dāng)前所建立的記錄項(xiàng)按激活時(shí)刻與原有記錄項(xiàng)順序排列;否則,繼續(xù)檢測(cè)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進(jìn)一步包括判斷所有記錄項(xiàng)中每個(gè)記錄項(xiàng)的激活時(shí)刻是否大于預(yù)先設(shè)定的統(tǒng)計(jì)時(shí)長(zhǎng)t,如果是,則刪除當(dāng)前判斷的記錄項(xiàng),否則,保留當(dāng)前判斷的記錄項(xiàng)。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述記錄項(xiàng)存儲(chǔ)于鏈表節(jié)點(diǎn)中,所有按激活時(shí)刻順序排列的記錄項(xiàng)形成一個(gè)記錄鏈表。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,該方法進(jìn)一步包括設(shè)置一記錄當(dāng)前所有記錄項(xiàng)個(gè)數(shù)的計(jì)數(shù)單元,則每次建立新記錄項(xiàng)的同時(shí),更新該計(jì)數(shù)單元的值。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法進(jìn)一步包括每次刪除記錄項(xiàng)的同時(shí),更新該計(jì)數(shù)單元的值。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法進(jìn)一步包括設(shè)置一記錄在預(yù)定時(shí)段內(nèi)記錄項(xiàng)個(gè)數(shù)最大值的峰值計(jì)數(shù)單元,所述峰值計(jì)數(shù)單元的值初始化為0。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,該方法進(jìn)一步包括判斷當(dāng)前計(jì)數(shù)單元的值是否大于峰值計(jì)數(shù)單元的值,如果大于,則更新峰值計(jì)數(shù)單元的值為當(dāng)前計(jì)數(shù)單元的值;否則,不作處理。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述被統(tǒng)計(jì)設(shè)備為接入設(shè)備;所述激活的用戶事件為用戶接入事件,所述激活時(shí)刻為接入事件的接入時(shí)刻。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按順序排列為按激活時(shí)刻從大到小的順序排列。
全文摘要
本發(fā)明公開了一種實(shí)時(shí)性能統(tǒng)計(jì)的實(shí)現(xiàn)方法,該方法包括檢測(cè)當(dāng)前被統(tǒng)計(jì)的設(shè)備,判斷是否有新激活的用戶事件,如果有,則建立新的記錄項(xiàng)存儲(chǔ)至少包括該事件激活時(shí)刻的相關(guān)用戶信息,并將當(dāng)前所建立的記錄項(xiàng)按激活時(shí)刻與原有記錄項(xiàng)順序排列;否則,繼續(xù)檢測(cè)。該方法不僅能提高對(duì)承載設(shè)備性能統(tǒng)計(jì)的精確度,而且能減少對(duì)系統(tǒng)資源的占用,進(jìn)而提高系統(tǒng)性能。
文檔編號(hào)H04L29/00GK1622541SQ200310115300
公開日2005年6月1日 申請(qǐng)日期2003年11月27日 優(yōu)先權(quán)日2003年11月27日
發(fā)明者胡玉勝, 任亮 申請(qǐng)人:華為技術(shù)有限公司