本發(fā)明涉及云計算設(shè)備虛擬化,是一種優(yōu)化pmd模型cpu資源占用的方法和系統(tǒng)。
背景技術(shù):
1、隨著網(wǎng)絡(luò)和存儲硬件設(shè)備的快速發(fā)展,傳統(tǒng)的基于cpu中斷的設(shè)備數(shù)據(jù)包處理方式已經(jīng)觸及cpu的性能瓶頸。在當前的云計算場景中,以dpdk和spdk為代表的基于pmd模型的數(shù)據(jù)包加速軟件庫和開發(fā)平臺被廣泛使用。
2、在現(xiàn)有已公開的發(fā)明技術(shù)中,如申請公開號為cn112003797a的專利公開了一種虛擬化dpdk網(wǎng)絡(luò)性能提高方法、系統(tǒng)、終端及存儲介質(zhì),包括:采集所有網(wǎng)卡的隊列收發(fā)量;根據(jù)每個網(wǎng)卡的隊列收發(fā)量計算每個隊列的cpu資源使用率;按cpu資源使用率由大到小對所有隊列進行排序;按隊列順序依次將隊列分配至空閑cpu核,直至無空閑cpu核,所述cpu核上承載pmd線程;將剩余隊列平均分配至所有cpu核。
3、又如申請公開號為cn115391003a的專利公開了一種dpdk數(shù)據(jù)包處理的排隊延遲控制方法及裝置,方法包括:輪詢網(wǎng)卡的接收隊列,并根據(jù)接收隊列中dpdk數(shù)據(jù)包的當前數(shù)量確定接收隊列的狀態(tài);若接收隊列的狀態(tài)為空閑狀態(tài),則循環(huán)執(zhí)行pause指令,并獲取時間片,在時間片未被用完時,重新獲取接收隊列中dpdk數(shù)據(jù)包的當前數(shù)量;若當前數(shù)量超過預設(shè)閾值,則將接收隊列的狀態(tài)從空閑狀態(tài)切換至忙碌狀態(tài),并對dpdk數(shù)據(jù)包進行處理。
4、上述專利采用pause指令劃分時間片的方法來降低功耗,而本發(fā)明采用輪詢和中斷切換的方式,能夠?qū)ν话l(fā)流量更敏感,可以降低突發(fā)數(shù)據(jù)包的時延;同時,在流量較少的時會減少使用的cpu?core的數(shù)量,而本發(fā)明不會減少線程數(shù)目,而是通過輪詢和中斷切換的方式讓出cpu資源,對突發(fā)流量反應(yīng)更快。
技術(shù)實現(xiàn)思路
1、本部分的目的在于概述本發(fā)明的實施例的一些方面以及簡要介紹一些較佳實施例。在本部分以及本申請的說明書摘要和發(fā)明名稱中可能會做些簡化或省略以避免使本部分、說明書摘要和發(fā)明名稱的目的模糊,而這種簡化或省略不能用于限制本發(fā)明的范圍。
2、本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)中,存在處理中斷、系統(tǒng)調(diào)用、上下文切換、多次內(nèi)存拷貝帶來的巨大的開銷的問題,本發(fā)明避免cpu資源浪費,讓cpu資源可以被合理使用。
3、為了達到上述目的,本發(fā)明一種優(yōu)化pmd模型cpu資源占用的方法的技術(shù)方案包括如下步驟:
4、s1:讀取并解析用戶需求和配置,并設(shè)置默認配置;
5、s2:開始輪詢處理數(shù)據(jù)包,提取監(jiān)測時間內(nèi)的數(shù)據(jù)包處理數(shù)量;
6、s3:進行模式切換判斷,并執(zhí)行模式切換策略;
7、s4:通過定時器計時獲取時間戳,并進行時間戳間隔判斷,執(zhí)行優(yōu)化策略。
8、具體地,s1中,所述默認配置包括:pmd_window_sec=1、pmd_threshold=10、pmd_round=60、intr_window_usec=1000、intr_threshold=10。
9、具體地,s1中,所述用戶需求和配置包括:用戶可根據(jù)需求修改配置,并進行用戶場景的精準匹配。
10、具體地,s1中,當用戶需要強制使用輪詢模式而不想切換到中斷模式,則可以將pmd_threshold置為0。
11、具體地,s2中,所述提取監(jiān)測時間內(nèi)的數(shù)據(jù)包處理數(shù)量包括:當應(yīng)用程序處于輪詢模式時,每過pmd_window_sec秒統(tǒng)計一次這段時間內(nèi)處理的數(shù)據(jù)包數(shù)量。
12、具體地,s3中,所述模式切換判斷包括:
13、s31:當一個監(jiān)測時間內(nèi)數(shù)據(jù)包數(shù)量少于pmd_threshold時,將pmd_cound計數(shù)值增加1;
14、s32:當一個監(jiān)測時間內(nèi)數(shù)據(jù)包數(shù)量大于等于
15、pmd_threshold時,將pmd_cound計數(shù)值置為0;
16、s33:執(zhí)行模式切換策略。
17、具體地,s33中,所述模式切換策略包括:當pmd_count計數(shù)值等于pmd_round時,切換到中斷模式。
18、具體地,s4中,所述進行時間戳間隔判斷包括:計算最近兩次記錄的時間戳差值δ,時間戳差值的計算公式如下:δ=ti-ti+1。
19、具體地,s4中,所述優(yōu)化策略包括:當前后兩次記錄的時間戳的差值小于intr_window_usec微秒,則表明有突發(fā)流量,需要立馬切換到輪詢模式。
20、另外,本發(fā)明一種優(yōu)化pmd模型cpu資源占用的系統(tǒng)包括如下模塊:
21、配置管理模塊、數(shù)據(jù)包處理模塊、中斷模塊、時間管理模塊;
22、所述配置管理模塊用于獲取用戶配置,并解析用戶配置;
23、所述數(shù)據(jù)包處理模塊用于處理理中斷上送或cpu輪詢到的數(shù)據(jù)包;
24、所述中斷模塊用于接收設(shè)備中斷信息并將數(shù)據(jù)包送給數(shù)據(jù)包處理模塊進行處理;
25、所述時間管理模塊用于提供定時器功能和獲取時間戳。
26、一種存儲介質(zhì),所述存儲介質(zhì)中存儲有指令,當計算機讀取所述指令時,使所述計算機執(zhí)行上述任一項所述的一種優(yōu)化pmd模型cpu資源占用的方法。
27、一種電子設(shè)備,包括存儲器、處理器以及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)上述任一項的一種優(yōu)化pmd模型cpu資源占用的方法。
28、與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)效果如下:
29、1、本發(fā)明可以在不損失整體性能和吞吐的情況下,減少cpu資源的占用。
30、2、本發(fā)明可以在業(yè)務(wù)量低谷的時間段節(jié)省電力能源。
31、3、本發(fā)明利用了現(xiàn)有的基礎(chǔ)設(shè)施,和現(xiàn)有技術(shù)相比,不會損失兼容性。
1.一種優(yōu)化pmd模型cpu資源占用的方法,其特征在于:所述方法包括如下具體步驟:
2.根據(jù)權(quán)利要求1所述的一種優(yōu)化pmd模型cpu資源占用的方法,其特征在于,s1中,所述默認配置包括:pmd_window_sec=1、pmd_threshold=10、pmd_round=60、
3.根據(jù)權(quán)利要求2所述的一種優(yōu)化pmd模型cpu資源占用的方法,其特征在于,s1中,所述用戶需求和配置包括:用戶可根據(jù)需求修改配置,并進行用戶場景的精準匹配。
4.根據(jù)權(quán)利要求1所述的一種優(yōu)化pmd模型cpu資源占用的方法,其特征在于,s1中,當用戶需要強制使用輪詢模式而不想切換到中斷模式,則可以將pmd_threshold置為0。
5.根據(jù)權(quán)利要求1所述的一種優(yōu)化pmd模型cpu資源占用的方法,其特征在于,s2中,所述提取監(jiān)測時間內(nèi)的數(shù)據(jù)包處理數(shù)量包括:當應(yīng)用程序處于輪詢模式時,每過pmd_window_sec秒統(tǒng)計一次這段時間內(nèi)處理的數(shù)據(jù)包數(shù)量。
6.根據(jù)權(quán)利要求5所述的一種優(yōu)化pmd模型cpu資源占用的方法,其特征在于,s3中,所述模式切換判斷包括:
7.根據(jù)權(quán)利要求6所述的一種優(yōu)化pmd模型cpu資源占用的方法,其特征在于,s33中,所述模式切換策略包括:當pmd_count計數(shù)值等于pmd_round時,切換到中斷模式。
8.根據(jù)權(quán)利要求1所述的一種優(yōu)化pmd模型cpu資源占用的方法,其特征在于,s4中,所述進行時間戳間隔判斷包括:計算最近兩次記錄的時間戳差值δ,時間戳差值的計算公式如下:δ=ti-ti+1。
9.根據(jù)權(quán)利要求1所述的一種優(yōu)化pmd模型cpu資源占用的方法,其特征在于,s4中,所述優(yōu)化策略包括:當前后兩次記錄的時間戳的差值小于intr_window_usec微秒,則表明有突發(fā)流量,需要立馬切換到輪詢模式。
10.一種優(yōu)化pmd模型cpu資源占用的系統(tǒng),其基于如權(quán)利要求1-9任一項所述的一種優(yōu)化pmd模型cpu資源占用的方法實現(xiàn),其特征在于,所述系統(tǒng)包括以下模塊: