本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種網(wǎng)絡(luò)設(shè)備中CPU利用率的獲取方法。
背景技術(shù):
CPU利用率作為表明網(wǎng)絡(luò)設(shè)備是否繁忙的一個(gè)指標(biāo)參數(shù),在網(wǎng)絡(luò)設(shè)備出現(xiàn)問(wèn)題或?qū)W(wǎng)絡(luò)設(shè)備進(jìn)行評(píng)估時(shí),具有十分重要的意義。
然而,現(xiàn)有技術(shù)中,缺少能有效地獲取網(wǎng)絡(luò)設(shè)備中CPU利用率的方法。例如,對(duì)于基于LINUX操作系統(tǒng)的設(shè)備而言,CPU利用率通常使用top命令或者讀取進(jìn)程的proc文件的方式來(lái)獲取。但是對(duì)于基于LINUX的網(wǎng)絡(luò)設(shè)備而言,由于其執(zhí)行的程序比較特殊,使用上述常見(jiàn)的方法不能準(zhǔn)確、有效地獲取CPU的利用率。
因此,如何提出一種方法,可準(zhǔn)確、有效地獲取網(wǎng)絡(luò)設(shè)備中的CPU利用率,成為亟待解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明實(shí)施例提供一種網(wǎng)絡(luò)設(shè)備中CPU利用率的獲取方法,包括:
獲取在預(yù)設(shè)時(shí)間段內(nèi)CPU執(zhí)行完整的工作循環(huán)的循環(huán)次數(shù),以及在所述循環(huán)次數(shù)內(nèi)、在報(bào)文處理流程中未接收到報(bào)文的空轉(zhuǎn)次數(shù);其中,所述工作循環(huán)包括所述非報(bào)文處理流程和所述報(bào)文處理流程;
獲取所述非報(bào)文處理流程對(duì)應(yīng)的第一權(quán)重值和所述報(bào)文處理流程對(duì)應(yīng)的第二權(quán)重值;所述第一權(quán)重值與所述第二權(quán)重值之和為1;
根據(jù)所述循環(huán)次數(shù)、所述空轉(zhuǎn)次數(shù)、所述第一權(quán)重值和所述第二權(quán)重值,獲取CPU利用率。
本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)設(shè)備中CPU利用率的獲取方法,由于獲取到了完整的工作循環(huán)的循環(huán)次數(shù),以及在報(bào)文處理流程中未接收到報(bào)文的空轉(zhuǎn)次數(shù),因此針對(duì)了網(wǎng)絡(luò)設(shè)備中CPU主要用于報(bào)文處理的特點(diǎn),且第一權(quán)重和第二權(quán)重的獲取能使最終獲取到的CPU利用率具有更佳的實(shí)際參考價(jià)值。因此,本發(fā)明實(shí)施例提供的CPU利用率獲取方法,可準(zhǔn)確并有效地獲取到網(wǎng)絡(luò)設(shè)備中CPU的利用率。
另一方面,本發(fā)明實(shí)施例提供一種網(wǎng)絡(luò)設(shè)備中CPU利用率的獲取裝置,包括:
第一獲取單元,用于獲取在預(yù)設(shè)時(shí)間段內(nèi)CPU執(zhí)行完整的工作循環(huán)的循環(huán)次數(shù),以及在所述循環(huán)次數(shù)內(nèi)、在報(bào)文處理流程中未接收到報(bào)文的空轉(zhuǎn)次數(shù);其中,所述工作循環(huán)包括所述非報(bào)文處理流程和所述報(bào)文處理流程;
第二獲取單元,用于獲取所述非報(bào)文處理流程對(duì)應(yīng)的第一權(quán)重值和所述報(bào)文處理流程對(duì)應(yīng)的第二權(quán)重值;所述第一權(quán)重值與所述第二權(quán)重值之和為1;
第三獲取單元,用于根據(jù)所述循環(huán)次數(shù)、所述空轉(zhuǎn)次數(shù)、所述第一權(quán)重值和所述第二權(quán)重值,獲取CPU利用率。
本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)設(shè)備中CPU利用率的獲取裝置,由于獲取到了完整的工作循環(huán)的循環(huán)次數(shù),以及在報(bào)文處理流程中未接收到報(bào)文的空轉(zhuǎn)次數(shù),因此針對(duì)了網(wǎng)絡(luò)設(shè)備中CPU主要用于報(bào)文處理的特點(diǎn),且第一權(quán)重和第二權(quán)重的獲取能使最終獲取到的CPU利用率具有更佳的實(shí)際參考價(jià)值。因此,本發(fā)明實(shí)施例提供的CPU利用率獲取裝置,可準(zhǔn)確并有效地獲取到網(wǎng)絡(luò)設(shè)備中CPU的利用率。
附圖說(shuō)明
圖1為本發(fā)明的網(wǎng)絡(luò)設(shè)備中CPU利用率的獲取方法實(shí)施例的流程示意圖;
圖2為本發(fā)明的網(wǎng)絡(luò)設(shè)備中CPU利用率的獲取裝置實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
參看圖1,本實(shí)施例公開(kāi)一種網(wǎng)絡(luò)設(shè)備中CPU利用率的獲取方法,包括:
S1、獲取在預(yù)設(shè)時(shí)間段內(nèi)CPU執(zhí)行完整的工作循環(huán)的循環(huán)次數(shù),以及在所述循環(huán)次數(shù)內(nèi)、在報(bào)文處理流程中未接收到報(bào)文的空轉(zhuǎn)次數(shù);其中,所述工作循環(huán)包括所述非報(bào)文處理流程和所述報(bào)文處理流程;
具體地,可通過(guò)例如設(shè)置計(jì)數(shù)器的方式獲取在預(yù)設(shè)時(shí)間段內(nèi)CPU執(zhí)行完整的工作循環(huán)的循環(huán)次數(shù);可通過(guò)例如設(shè)置回執(zhí)的方式獲取在所述循環(huán)次數(shù)內(nèi)、在報(bào)文處理流程中未接收到報(bào)文的空轉(zhuǎn)次數(shù);所述空轉(zhuǎn)指網(wǎng)絡(luò)設(shè)備在一個(gè)工作循環(huán)中,未接收到報(bào)文的情況。其中,為保證獲取到的數(shù)據(jù)盡可能精確地反應(yīng)出CPU即時(shí)的利用率,所述時(shí)間段可設(shè)置為較短的時(shí)間段,例如2s。
一般地,網(wǎng)絡(luò)設(shè)備會(huì)循環(huán)地以執(zhí)行線程(或進(jìn)程)的方式從網(wǎng)卡接收?qǐng)?bào)文,同時(shí)所述線程還會(huì)進(jìn)行除接收?qǐng)?bào)文之外的操作,基于此,可將整個(gè)線程的工作分為兩部分:其他工作和報(bào)文處理。因此,所述工作循環(huán)包括所述非報(bào)文處理流程和所述報(bào)文處理流程。
S2、獲取所述非報(bào)文處理流程對(duì)應(yīng)的第一權(quán)重值和所述報(bào)文處理流程對(duì)應(yīng)的第二權(quán)重值;所述第一權(quán)重值與所述第二權(quán)重值之和為1;
可根據(jù)網(wǎng)絡(luò)設(shè)備在某一時(shí)段進(jìn)行報(bào)文處理的繁忙程度,獲取所述非報(bào)文處理流程對(duì)應(yīng)的第一權(quán)重值和所述報(bào)文處理流程對(duì)應(yīng)的第二權(quán)重值。一般地,獲取的所述非報(bào)文處理流程的第一權(quán)重值可為0.2,獲取的所述報(bào)文處理流程對(duì)應(yīng)的第二權(quán)重值可為0.8,若在某一時(shí)段,服務(wù)器進(jìn)行了較往常更多的報(bào)文處理,則對(duì)應(yīng)地,獲取的第二權(quán)重值可增加至例如0.85,相應(yīng)地,獲取的所述第一權(quán)重值可調(diào)整為0.15。其中,所述第一權(quán)重值與所述第二權(quán)重值之和為1。
S3、根據(jù)所述循環(huán)次數(shù)、所述空轉(zhuǎn)次數(shù)、所述第一權(quán)重值和所述第二權(quán)重值,獲取CPU利用率。
在獲取到所述循環(huán)次數(shù)、所述空轉(zhuǎn)次數(shù)、所述第一權(quán)重值和所述第二權(quán)重值后,則可通過(guò)對(duì)這些數(shù)據(jù)進(jìn)行處理,獲取CPU利用率。
本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)設(shè)備中CPU利用率的獲取方法,由于獲取到了完整的工作循環(huán)的循環(huán)次數(shù),以及在報(bào)文處理流程中未接收到報(bào)文的空轉(zhuǎn)次數(shù),因此針對(duì)了網(wǎng)絡(luò)設(shè)備中CPU主要用于報(bào)文處理的特點(diǎn),且第一權(quán)重和第二權(quán)重的獲取能使最終獲取到的CPU利用率具有更佳的實(shí)際參考價(jià)值。因此,本發(fā)明實(shí)施例提供的CPU利用率獲取方法,可準(zhǔn)確并有效地獲取到網(wǎng)絡(luò)設(shè)備中CPU的利用率。
所述根據(jù)所述循環(huán)次數(shù)、所述空轉(zhuǎn)次數(shù)、所述第一權(quán)重值和所述第二權(quán)重值,獲取CPU利用率包括:
應(yīng)用第一公式計(jì)算CPU利用率;所述第一公式為:
CPU利用率=weight_1+weight_2×(1-空轉(zhuǎn)次數(shù)/循環(huán)次數(shù)),其中,weight_1為所述第一權(quán)重值,weight_2為所述第二權(quán)重值。
例如,在2s內(nèi),獲取到循環(huán)次數(shù)為50、空轉(zhuǎn)次數(shù)為10、第一權(quán)重值為0.2,第二權(quán)重值為0.8,則CPU利用率=0.2+0.8×(1-10/50)=0.84。
通過(guò)第一公式的計(jì)算,可實(shí)現(xiàn)CPU利用率的量化,從而能直觀地獲知CPU實(shí)際的利用情況。
優(yōu)選地,還可獲取CPU在所述預(yù)設(shè)時(shí)間段內(nèi)、在所述非報(bào)文處理流程中實(shí)際處理的任務(wù)的第一個(gè)數(shù)handle,以及在非報(bào)文處理流程中CPU要處理的所有任務(wù)的第二個(gè)數(shù)total,并根據(jù)所述第一個(gè)數(shù)和第二個(gè)數(shù),以及修正系數(shù),獲取修正值。
具體地,可通過(guò)設(shè)置計(jì)數(shù)器的方式,獲取CPU在所述預(yù)設(shè)時(shí)間段內(nèi)、在所述非報(bào)文處理流程中實(shí)際處理的任務(wù)的第一個(gè)數(shù)handle;可通過(guò)調(diào)用任務(wù)清單并設(shè)置計(jì)數(shù)器的方式,獲取在非報(bào)文處理流程中CPU要處理的所有任務(wù)的第二個(gè)數(shù)total。例如,CPU需要執(zhí)行兩個(gè)定時(shí)器A和B,則第二個(gè)數(shù)total為2,而在預(yù)設(shè)時(shí)間段內(nèi)例如2S內(nèi),CPU僅執(zhí)行了定時(shí)器A,則第一個(gè)數(shù)handle為1。
所述修正系數(shù)取值范圍為[0,0.3],所述修正值=修正系數(shù)×handle/total。例如,修正系數(shù)a=0.3,handle=1,total=2,則修正值value=0.3×1/2=0.15。
相應(yīng)地,所述根據(jù)所述循環(huán)次數(shù)、所述空轉(zhuǎn)次數(shù)、所述第一權(quán)重值和所述第二權(quán)重值,獲取CPU利用率可包括:根據(jù)所述循環(huán)次數(shù)、所述空轉(zhuǎn)次數(shù)、所述第一權(quán)重值、所述第二權(quán)重值和所述修正值,獲取CPU利用率。
具體地,所述根據(jù)所述循環(huán)次數(shù)、所述空轉(zhuǎn)次數(shù)、所述第一權(quán)重值、所述第二權(quán)重值和所述修正值,獲取CPU利用率包括:
應(yīng)用第二公式計(jì)算CPU利用率;所述第二公式為:
CPU利用率=(weight_1+value)+(weight_2-value)×(1-空轉(zhuǎn)次數(shù)/循環(huán)次數(shù))。
例如,在2s內(nèi),獲取到循環(huán)次數(shù)為50、空轉(zhuǎn)次數(shù)為10、第一權(quán)重值為0.2,第二權(quán)重值為0.8,修正值為0.15,則CPU利用率=(0.2+0.15)+(0.8-0.15)×(1-10/50)=0.87。
由于在該優(yōu)選實(shí)施例中,引入了修正值,所述修正值可根據(jù)實(shí)際情況對(duì)第一權(quán)重值和第二權(quán)重值進(jìn)行適當(dāng)?shù)男拚?,從而進(jìn)一步提高了量化后的CPU利用率的精確性。
參看圖2,本實(shí)施例公開(kāi)一種網(wǎng)絡(luò)設(shè)備中CPU利用率的獲取裝置,包括:第一獲取單元1、第二獲取單元2以及第三獲取單元3。
具體地,所述第一獲取單元1用于獲取在預(yù)設(shè)時(shí)間段內(nèi)CPU執(zhí)行完整的工作循環(huán)的循環(huán)次數(shù),以及在所述循環(huán)次數(shù)內(nèi)、在報(bào)文處理流程中未接收到報(bào)文的空轉(zhuǎn)次數(shù);其中,所述工作循環(huán)包括所述非報(bào)文處理流程和所述報(bào)文處理流程;第二獲取單元2用于獲取所述非報(bào)文處理流程對(duì)應(yīng)的第一權(quán)重值和所述報(bào)文處理流程對(duì)應(yīng)的第二權(quán)重值;所述第一權(quán)重值與所述第二權(quán)重值之和為1;第三獲取單元3用于根據(jù)所述循環(huán)次數(shù)、所述空轉(zhuǎn)次數(shù)、所述第一權(quán)重值和所述第二權(quán)重值,獲取CPU利用率。
其中,獲取單元2可根據(jù)網(wǎng)絡(luò)設(shè)備在某一時(shí)段進(jìn)行報(bào)文處理的繁忙程度,獲取所述非報(bào)文處理流程對(duì)應(yīng)的第一權(quán)重值和所述報(bào)文處理流程對(duì)應(yīng)的第二權(quán)重值。一般地,獲取的所述非報(bào)文處理流程的第一權(quán)重值可為0.2,獲取的所述報(bào)文處理流程對(duì)應(yīng)的第二權(quán)重值可為0.8,若在某一時(shí)段,服務(wù)器進(jìn)行了較往常更多的報(bào)文處理,則對(duì)應(yīng)地,獲取的第二權(quán)重值可增加至例如0.85,相應(yīng)地,獲取的所述第一權(quán)重值可調(diào)整為0.15。其中,所述第一權(quán)重值與所述第二權(quán)重值之和為1。
本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)設(shè)備中CPU利用率的獲取裝置,由于獲取到了完整的工作循環(huán)的循環(huán)次數(shù),以及在報(bào)文處理流程中未接收到報(bào)文的空轉(zhuǎn)次數(shù),因此針對(duì)了網(wǎng)絡(luò)設(shè)備中CPU主要用于報(bào)文處理的特點(diǎn),且第一權(quán)重和第二權(quán)重的獲取能使最終獲取到的CPU利用率具有更佳的實(shí)際參考價(jià)值。因此,本發(fā)明實(shí)施例提供的CPU利用率獲取裝置,可準(zhǔn)確并有效地獲取到網(wǎng)絡(luò)設(shè)備中CPU的利用率。
具體地,獲取單元3用于應(yīng)用第一公式計(jì)算CPU利用率,所述第一公式為:
CPU利用率=weight_1+weight_2×(1-空轉(zhuǎn)次數(shù)/循環(huán)次數(shù)),其中,weight_1為所述第一權(quán)重值,weight_2為所述第一權(quán)重值。
例如,在2s內(nèi),獲取單元1獲取到循環(huán)次數(shù)為50、空轉(zhuǎn)次數(shù)為10,獲取單元2獲取到第一權(quán)重值為0.2,第二權(quán)重值為0.8,則CPU利用率=0.2+0.8×(1-10/50)=0.84。
通過(guò)第一公式的計(jì)算,可實(shí)現(xiàn)CPU利用率的量化,從而能直觀地獲知CPU實(shí)際的利用情況。
優(yōu)選地,本發(fā)明實(shí)施例提供的裝置還可包括獲取單元4,用于獲取CPU在所述預(yù)設(shè)時(shí)間段內(nèi)、在所述非報(bào)文處理流程中實(shí)際處理的任務(wù)的第一個(gè)數(shù)handle,以及在非報(bào)文處理流程中CPU要處理的所有任務(wù)的第二個(gè)數(shù)total,并根據(jù)所述第一個(gè)數(shù)和第二個(gè)數(shù),以及修正系數(shù),獲取修正值。
例如,CPU需要執(zhí)行兩個(gè)定時(shí)器A和B,則第二個(gè)數(shù)total為2,而在預(yù)設(shè)時(shí)間段內(nèi)例如2S內(nèi),CPU僅執(zhí)行了定時(shí)器A,則第一個(gè)數(shù)handle為1。
所述修正系數(shù)取值范圍為[0,0.3],所述修正值=修正系數(shù)×handle/total。例如,修正系數(shù)a=0.3,handle=1,total=2,則修正值value=0.3×1/2=0.15。
相應(yīng)地,所述第三獲取單元還用于:
根據(jù)所述循環(huán)次數(shù)、所述空轉(zhuǎn)次數(shù)、所述第一權(quán)重值、所述第二權(quán)重值和所述修正值,獲取CPU利用率。
具體地,所述第三獲取單元用于應(yīng)用第二公式計(jì)算CPU利用率;所述第二公式為:
CPU利用率=(weight_1+value)+(weight_2-value)×(1-空轉(zhuǎn)次數(shù)/循環(huán)次數(shù))。
例如,在2s內(nèi),獲取到循環(huán)次數(shù)為50、空轉(zhuǎn)次數(shù)為10、第一權(quán)重值為0.2,第二權(quán)重值為0.8,修正值為0.15,則CPU利用率=(0.2+0.15)+(0.8-0.15)×(1-10/50)=0.87。
由于在該優(yōu)選實(shí)施例中,獲取單元4獲取到修正值,所述修正值可根據(jù)實(shí)際情況對(duì)第一權(quán)重值和第二權(quán)重值進(jìn)行適當(dāng)?shù)男拚?,從而進(jìn)一步提高了量化后的CPU利用率的精確性。
最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。