本技術涉及計算機程序領域,尤其涉及一種cpu忙輪詢性能確定方法、裝置、電子設備及存儲介質(zhì)。
背景技術:
1、為了降低服務響應延遲和提高吞吐量,后臺服務程序可以采用“忙輪詢”的工作模式?!拜喸?polling)”是程序定期檢查某些條件或事件是否發(fā)生的一種編程模式,其實現(xiàn)方式是通過不斷的循環(huán)檢查特定的條件是否滿足,比如網(wǎng)絡連接是否有新的數(shù)據(jù),鍵盤、鼠標等輸入設備是否有輸入等,并在條件不滿足的時候等待一段時間后再次檢查?!懊喸?busy?polling)”是一種特殊類型的輪詢,在循環(huán)中沒有引入任何形式的等待機制,而是不斷地檢查條件是否滿足。忙輪詢因為循環(huán)中沒有等待,cpu會一直處于滿負荷的忙狀態(tài),從而使得程序能獲得極佳的處理效率和極低的響應延遲,常用于工作負荷重、性能要求高的場景,比如大流量網(wǎng)絡數(shù)據(jù)包處理、股票交易系統(tǒng)等場景。
2、為了降低網(wǎng)絡io延遲和提高吞吐量,網(wǎng)絡數(shù)據(jù)包處理程序通常采用忙輪詢的工作模式。這種工作模式下,應用程序占用的cpu連續(xù)不間斷地執(zhí)行其工作任務循環(huán),包括收包、解析、修改、路由、轉(zhuǎn)發(fā)等,因此無法根據(jù)cpu使用率評估程序的最大處理能力(因為忙輪詢的cpu使用率一直是100%)。這種情況下,可以使用cpu每秒執(zhí)行程序工作循環(huán)的次數(shù)(nps,loops/s)評估cpu性能,通過包轉(zhuǎn)發(fā)率(pps,packet/s,每秒數(shù)據(jù)包數(shù)),或更一般的每秒事務數(shù)(tps,transaction/s)評估程序的工作效率。然而,nps和tps是非線性的,隨著tps的升高nps會降低,但是nps降低到某個閾值后,tps則會因數(shù)據(jù)包得不到及時處理而急劇下滑(因為網(wǎng)絡擁塞和失敗重試),從而性能崩潰,因此,目前并無能夠評估cpu忙輪詢性能的方法。
技術實現(xiàn)思路
1、為了解決上述技術問題或者至少部分地解決上述技術問題,本技術提供了一種cpu忙輪詢性能確定方法、裝置、電子設備及存儲介質(zhì)。
2、第一方面,本技術提供了一種cpu忙輪詢性能確定方法,包括:
3、獲取忙輪詢程序空載時的一次程序工作循環(huán)需要執(zhí)行的第一循環(huán)指令數(shù)l0及忙輪詢程序完成一個基本事務需要執(zhí)行的第一事物指令數(shù)k;
4、基于所述第一循環(huán)指令數(shù)l0、所述第一事物指令數(shù)k及預設的殘差計算公式確定第一殘差數(shù)據(jù)r;
5、若所述第一殘差數(shù)據(jù)r小于預設第一閾值,基于所述第一循環(huán)指令數(shù)l0、所述第一事物指令數(shù)k及預設的極限性能計算公式確定cpu忙輪詢程序的第一極限性能值tm1。
6、可選地,獲取忙輪詢程序空載時一次程序工作循環(huán)需要執(zhí)行的第一循環(huán)指令數(shù)l0,包括:
7、獲取多個采樣點數(shù)據(jù),所述采樣點數(shù)據(jù)包括:針對cpu采集的多組每秒執(zhí)行程序工作循環(huán)的次數(shù)nps數(shù)據(jù)和忙輪詢程序每秒處理的事務數(shù)tps數(shù)據(jù);
8、基于包含所述nps數(shù)據(jù)和所述tps數(shù)據(jù)的多個所述采樣點數(shù)據(jù)確定第一中間參數(shù)a1、第二中間參數(shù)b1、第三中間參數(shù)c1、第四中間參數(shù)a2、第五中間參數(shù)b2和第六中間參數(shù)c2;
9、基于所述第一中間參數(shù)a1、所述第二中間參數(shù)b1、所述第三中間參數(shù)c1、所述第四中間參數(shù)a2、所述第五中間參數(shù)b2、所述第六中間參數(shù)c2及預設的循環(huán)指令數(shù)計算公式計算所述第一循環(huán)指令數(shù)l0。
10、可選地,獲取忙輪詢程序完成一個基本事務需要執(zhí)行的第一事物指令數(shù)k,包括:
11、獲取多個采樣點數(shù)據(jù),所述采樣點數(shù)據(jù)包括:針對cpu采集的多組每秒執(zhí)行程序工作循環(huán)的次數(shù)nps數(shù)據(jù)和忙輪詢程序每秒處理的事務數(shù)tps數(shù)據(jù);
12、基于包含所述nps數(shù)據(jù)和所述tps數(shù)據(jù)的多個所述采樣點數(shù)據(jù)確定第一中間參數(shù)a1、第二中間參數(shù)b1、第三中間參數(shù)c1、第四中間參數(shù)a2、第五中間參數(shù)b2和第六中間參數(shù)c2;
13、基于所述第一中間參數(shù)a1、所述第二中間參數(shù)b1、所述第三中間參數(shù)c1、所述第四中間參數(shù)a2、所述第五中間參數(shù)b2、所述第六中間參數(shù)c2及預設的事物指令數(shù)計算公式計算所述第一事物指令數(shù)k。
14、可選地,所述方法還包括:
15、若所述第一殘差數(shù)據(jù)r大于預設第一閾值,獲取對cpu每秒執(zhí)行指令數(shù)ips進行采樣得到的第一ips數(shù)據(jù);
16、對所述第一ips數(shù)據(jù)進行校正,得到第二ips數(shù)據(jù);
17、基于所述第一循環(huán)指令數(shù)、所述第一事物指令數(shù)、所述第二ips數(shù)據(jù)及預設的極限性能計算公式確定cpu忙輪詢程序的第二極限性能值。
18、可選地,對所述第一ips數(shù)據(jù)進行校正,得到第二ips數(shù)據(jù),包括:
19、計算所述第一ips數(shù)據(jù)的第一ips平均值和ips標準差;
20、判斷所述ips標準差是否小于預設第二閾值;
21、若所述ips標準差小于預設第二閾值,確定校正完成。
22、可選地,對所述第一ips數(shù)據(jù)進行校正,得到第二ips數(shù)據(jù),還包括:
23、若所述ips標準差大于或等于預設第二閾值,則剔除偏離所述第一ips平均值最大的采樣點;
24、若剔除采樣點后剩余的采樣點數(shù)量小于預設數(shù)量,則補充采樣點;
25、重新執(zhí)行計算所述第一ips采樣數(shù)據(jù)中各采樣點的第一ips平均值和ips標準差的步驟,直至所述標準差小于預設第二閾值。
26、可選地,基于所述第一循環(huán)指令數(shù)、所述第一事物指令數(shù)、所述第二ips數(shù)據(jù)及預設的極限性能計算公式確定cpu忙輪詢程序的第二極限性能值,包括:
27、基于所述第二ips數(shù)據(jù)確定第二ips平均值
28、獲取忙輪詢程序空載時對cpu每秒執(zhí)行指令數(shù)ips進行測量得到的ips測量值i0;
29、獲取忙輪詢程序空載時對cpu每秒執(zhí)行程序工作循環(huán)的次數(shù)nps進行測量得到的空載nps數(shù)據(jù)n0;
30、基于所述第一循環(huán)指令數(shù)、所述第一事物指令數(shù)、所述第二ips平均值所述ips測量值i0、所述空載nps數(shù)據(jù)n0及預設的極限性能計算公式,確定cpu忙輪詢程序的第二極限性能值tm2。
31、第二方面,本技術提供了一種cpu忙輪詢性能確定方法,包括:
32、第一獲取模塊,用于獲取忙輪詢程序空載時的一次程序工作循環(huán)需要執(zhí)行的第一循環(huán)指令數(shù)l0及忙輪詢程序完成一個基本事務需要執(zhí)行的第一事物指令數(shù)k;
33、第一確定模塊,用于基于所述第一循環(huán)指令數(shù)l0、所述第一事物指令數(shù)k及預設的殘差計算公式確定第一殘差數(shù)據(jù)r;
34、第二確定模塊,用于若所述第一殘差數(shù)據(jù)r小于預設第一閾值,基于所述第一循環(huán)指令數(shù)l0、所述第一事物指令數(shù)k及預設的極限性能計算公式確定cpu忙輪詢程序的第一極限性能值tm1。
35、可選地,所述第一獲取模塊包括:
36、第一獲取單元,用于獲取多個采樣點數(shù)據(jù),所述采樣點數(shù)據(jù)包括:針對cpu采集的多組每秒執(zhí)行程序工作循環(huán)的次數(shù)nps數(shù)據(jù)和忙輪詢程序每秒處理的事務數(shù)tps數(shù)據(jù);
37、第一確定單元,用于基于包含所述nps數(shù)據(jù)和所述tps數(shù)據(jù)的多個所述采樣點數(shù)據(jù)確定第一中間參數(shù)a1、第二中間參數(shù)b1、第三中間參數(shù)c1、第四中間參數(shù)a2、第五中間參數(shù)b2和第六中間參數(shù)c2;
38、第一計算單元,用于基于所述第一中間參數(shù)a1、所述第二中間參數(shù)b1、所述第三中間參數(shù)c1、所述第四中間參數(shù)a2、所述第五中間參數(shù)b2、所述第六中間參數(shù)c2及預設的循環(huán)指令數(shù)計算公式計算所述第一循環(huán)指令數(shù)l0。
39、可選地,所述第一獲取模塊包括:
40、第二獲取單元,用于獲取多個采樣點數(shù)據(jù),所述采樣點數(shù)據(jù)包括:針對cpu采集的多組每秒執(zhí)行程序工作循環(huán)的次數(shù)nps數(shù)據(jù)和忙輪詢程序每秒處理的事務數(shù)tps數(shù)據(jù);
41、第二確定單元,用于基于包含所述nps數(shù)據(jù)和所述tps數(shù)據(jù)的多個所述采樣點數(shù)據(jù)確定第一中間參數(shù)a1、第二中間參數(shù)b1、第三中間參數(shù)c1、第四中間參數(shù)a2、第五中間參數(shù)b2和第六中間參數(shù)c2;
42、第二計算單元,用于基于所述第一中間參數(shù)a1、所述第二中間參數(shù)b1、所述第三中間參數(shù)c1、所述第四中間參數(shù)a2、所述第五中間參數(shù)b2、所述第六中間參數(shù)c2及預設的事物指令數(shù)計算公式計算所述第一事物指令數(shù)k。
43、可選地,所述裝置還包括:
44、第二獲取模塊,用于若所述第一殘差數(shù)據(jù)r大于預設第一閾值,獲取對cpu每秒執(zhí)行指令數(shù)ips進行采樣得到的第一ips數(shù)據(jù);
45、校正模塊,用于對所述第一ips數(shù)據(jù)進行校正,得到第二ips數(shù)據(jù);
46、第一計算模塊,用于基于所述第一循環(huán)指令數(shù)、所述第一事物指令數(shù)、所述第二ips數(shù)據(jù)及預設的極限性能計算公式確定cpu忙輪詢程序的第二極限性能值。
47、可選地,所述校正模塊包括:
48、第三計算單元,用于計算所述第一ips數(shù)據(jù)的第一ips平均值和ips標準差;
49、判斷單元,用于判斷所述ips標準差是否小于預設第二閾值;
50、第三確定單元,用于若所述ips標準差小于預設第二閾值,確定校正完成。
51、可選地,所述校正模塊還包括:
52、剔除單元,用于若所述ips標準差大于或等于預設第二閾值,則剔除偏離所述第一ips平均值最大的采樣點;
53、補充單元,用于若剔除采樣點后剩余的采樣點數(shù)量小于預設數(shù)量,則補充采樣點;
54、重新計算單元,用于重新執(zhí)行計算所述第一ips采樣數(shù)據(jù)中各采樣點的第一ips平均值和ips標準差的步驟,直至所述標準差小于預設第二閾值。
55、可選地,所述第一計算模塊包括:
56、第四確定單元,用于基于所述第二ips數(shù)據(jù)確定第二ips平均值
57、第三獲取單元,用于獲取忙輪詢程序空載時對cpu每秒執(zhí)行指令數(shù)ips進行測量得到的ips測量值i0;
58、第四獲取單元,用于獲取忙輪詢程序空載時對cpu每秒執(zhí)行程序工作循環(huán)的次數(shù)nps進行測量得到的空載nps數(shù)據(jù)n0;
59、第五確定單元,用于基于所述第一循環(huán)指令數(shù)、所述第一事物指令數(shù)、所述第二ips平均值所述ips測量值i0、所述空載nps數(shù)據(jù)n0及預設的極限性能計算公式,確定cpu忙輪詢程序的第二極限性能值tm2。
60、第三方面,本技術提供了一種電子設備,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;
61、存儲器,用于存放計算機程序;
62、處理器,用于執(zhí)行存儲器上所存放的程序時,實現(xiàn)第一方面任一所述的cpu忙輪詢性能確定方法。
63、第四方面,本技術提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有cpu忙輪詢性能確定方法的程序,所述cpu忙輪詢性能確定方法的程序被處理器執(zhí)行時實現(xiàn)第一方面任一所述的cpu忙輪詢性能確定方法的步驟。
64、本技術實施例提供的上述技術方案與現(xiàn)有技術相比具有如下優(yōu)點:
65、通過本發(fā)明可以確定cpu忙輪詢程序的第一極限性能值,基于第一極限性能值能夠動態(tài)預測基于dpvs構(gòu)建的四層負載均衡服務的極限處理能力,幫助服務管理員合理規(guī)劃和調(diào)整服務資源,使得服務能夠使用最少的資源配置提供面向公司所有業(yè)務的穩(wěn)定的負載均衡服務能力。