多核CPU過載檢測裝置和多核CPU過載檢測方法與流程
2023-06-07 01:03:51 3
本發明涉及CPU技術領域,具體而言,涉及一種多核CPU過載檢測裝置和一種多核CPU過載檢測方法。
背景技術:
多核CPU(中央處理器)廣泛用於PC客戶端,隨著多核技術的發展,多核CPU在網絡處理器方面的應用越來越多。當多核CPU應用在DPI系統中,由於DPI對鏈路來說屬於透明設備,DPI設備需要實時檢測CPU負載狀態,當CPU出現過載時,需要將報文直接轉發,避免因為CPU高負載導致鏈路丟包現象的發生。現有技術中通常通過檢測CPU佔用率的方式來確定CPU的負載狀態,當CPU利用率比較高,則認為CPU過載發生。但是在網絡處理器中,CPU實時對數據包的進行轉發,準確測量CPU的利用率很難實現。而且出於業務的需要,多核CPU經常會被賦予輪訓收包的業務處理流程,CPU的佔用率基本維持在100%,所以使得依靠CPU利用率判斷過載難以實現,而且準確率不高。因此,需要一種新的多核CPU的過載檢測技術,能夠根據多核CPU處理數據的時延來方便且準確地判斷多核CPU是否發生過載,進而將過載的多核CPU處理的報文提前轉發,從而避免多核CPU在過載情況下丟包現象的發生。
技術實現要素:
本發明正是基於上述問題,提出了一種多核CPU的過載檢測技術,能夠根據多核CPU處理數據的時延來方便且準確地判斷多核CPU是否發生過載,進而將過載的多核CPU處理的報文提前轉發,從而避免多核CPU在過載情況下丟包現象的發生。有鑑於此,本發明提出了一種多核CPU的過載檢測裝置,包括:採樣計算單元,用於採集所述多核CPU中每個數據核中部分數據的處理信息,並根據所述每個數據核的所述處理信息計算對應數據核的處理時延;綜合時延計算單元,用於按照預設算法對所述每個數據核的處理時延進行計算,得到所述多核CPU的綜合處理時延;時延比較單元,用於將所述綜合處理時延與預設處理時延進行比較,當所述綜合處理時延大於或等於所述預設處理時延,則判定所述多核CPU發生過載。在該技術方案中,多核CPU包含多個數據核,其中每個數據核都可以處理數據,而當數據核的負載較大時,其處理數據的速度也會變慢,即處理數據的時延增加,通過檢測每個數據核處理數據的時延,可以計算出多核CPU處理數數的綜合處理時延,而綜合處理時延就可以反映出多核CPU處理數據負載情況,即綜合處理時延越大,負載就越大,當綜合處理時延超過一定數值(預設處理時延)後,即可判定多核CPU處理處於過載狀態,由於多核CPU中每個數據核處理數據的時延可以直接而準確地反映出數據核的負載情況,從而通過多核CPU的綜合處理時延,就可以準確地判定出多核CPU是否過載。在上述技術方案中,優選地,所述採樣計算單元包括:數據採樣子單元,用於確定預設起始數據,並從所述預設起始數據開始採集數據,直至採集到預設數據量的數據為止,將採集到的數據作為所述部分數據;時延計算子單元,用於計算所述部分數據的處理結束時間和處理起始時間之差,作為所述對應數據核的處理時延。在該技術方案中,採集數據的具體方式可以是在採集一定數量的數據,比如從某個指定的數據開始採集,直至採集到所需數量的數據為止,然後根據這些數據的處理信息,即處理結束時間和處理起始時間,將兩者做差,差值即該數據核的處理時延,而數據的處理信息可以準確地存儲在數據核中,從而可以準確地提取出來進行計算,進而準確地判斷出多核CPU的負載情況。在上述技術方案中,優選地,所述採樣計算單元包括:數據採樣子單元,用於確定預設採樣時間,並從所述預設採樣時間開始採集數據,直至採集預設時間長度為止,將採集到的數據作為所述部分數據;時延計算子單元,用於計算所述部分數據的處理結束時間和處理起始時間之差,作為所述對應數據核的處理時延。在該技術方案中,採集數據的具體方式可以是在採集一定時間段內的數據,比如從某個指定的時間點開始採集,直至採集一定時間後停止,然後根據這些數據的處理信息,即處理結束時間和處理起始時間,將兩者做差,差值即該數據核的處理時延,而數據的處理信息可以準確地存儲在數據核中,從而可以準確地提取出來進行計算,進而準確地判斷出多核CPU的負載情況。在上述技術方案中,優選地,所述綜合時延計算單元用於對所述每個數據核的處理時延進行加權平均計算,並將計算結果作為所述綜合處理時延。在該技術方案中,具體可以通過對每個數據核的處理時延進行加權平均計算,從而準確地得出多核CPU的綜合處理時延。在上述任一技術方案中,優選地,還包括:報文轉發單元,用於在所述時延比較單元判定所述多核CPU發生過載後,將所述多核CPU的數據報文進行轉發。在該技術方案中,當多核CPU過載時,就有可能發生鏈路丟包的現象,而在判定過載時,直接將多核CPU的部分數據報文進行轉發,可以有效地避免丟包現象的發生,保證多核CPU在過載情況下數據包也能正常轉發。本申請還提出了一種多核CPU的過載檢測方法,包括:步驟202,採集所述多核CPU中每個數據核中部分數據的處理信息,並根據所述處理信息計算對應數據核的處理時延;步驟204,按照預設算法對所述每個數據核的處理時延進行計算,得到所述多核CPU的綜合處理時延;步驟206,將所述綜合處理時延與預設處理時延進行比較,當所述綜合處理時延大於或等於所述預設處理時延,則判定所述多核CPU發生過載。在該技術方案中,多核CPU包含多個數據核,其中每個數據核都可以處理數據,而當數據核的負載較大時,其處理數據的速度也會變慢,即處理數據的時延增加,通過檢測每個數據核處理數據的時延,可以計算出多核CPU處理數數的綜合處理時延,而綜合處理時延就可以反映出多核CPU處理數據負載情況,即綜合處理時延越大,負載就越大,當綜合處理時延超過一定數值(預設處理時延)後,即可判定多核CPU處理處於過載狀態,由於多核CPU中每個數據核處理數據的時延可以直接而準確地反映出數據核的負載情況,從而通過多核CPU的綜合處理時延,就可以準確地判定出多核CPU是否過載。在上述技術方案中,優選地,所述步驟202包括:步驟2022,確定預設起始數據,並從所述預設起始數據開始採集數據,直至採集到預設數據量的數據為止,將採集到的數據作為所述部分數據;步驟2024,計算所述待計算數據的處理結束時間和處理起始時間之差,作為所述對應數據核的處理時延。在該技術方案中,採集數據的具體方式可以是在採集一定數量的數據,比如從某個指定的數據開始採集,直至採集到所需數量的數據為止,然後根據這些數據的處理信息,即處理結束時間和處理起始時間,將兩者做差,差值即該數據核的處理時延,而數據的處理信息可以準確地存儲在數據核中,從而可以準確地提取出來進行計算,進而準確地判斷出多核CPU的負載情況。在上述技術方案中,優選地,所述步驟202包括:步驟2022,確定預設採樣時間,並從所述預設採樣時間開始採集數據,直至採集預設時間長度為止,將採集到的數據作為所述部分數據;步驟2024,計算所述待計算數據的處理結束時間和處理起始時間之差,作為所述對應數據核的處理時延。在該技術方案中,採集數據的具體方式可以是在採集一定時間段內的數據,比如從某個指定的時間點開始採集,直至採集一定時間後停止,然後根據這些數據的處理信息,即處理結束時間和處理起始時間,將兩者做差,差值即該數據核的處理時延,而數據的處理信息可以準確地存儲在數據核中,從而可以準確地提取出來進行計算,進而準確地判斷出多核CPU的負載情況。在上述技術方案中,優選地,所述步驟204包括:對所述每個數據核的處理時延進行加權平均計算,並將計算結果作為所述綜合處理時延。在該技術方案中,具體可以通過對每個數據核的處理時延進行加權平均計算,從而準確地得出多核CPU的綜合處理時延。在上述任一技術方案中,優選地,還包括:在判定所述多核CPU發生過載後,將所述多核CPU的數據報文進行轉發。在該技術方案中,當多核CPU過載時,就有可能發生鏈路丟包的現象,而在判定過載時,直接將多核CPU的部分數據報文進行轉發,可以有效地避免丟包現象的發生,保證多核CPU在過載情況下數據包也能正常轉發。通過以上技術方案,可以根據多核CPU處理數據的時延來準確地判斷多核CPU是否發生過載,進而將過載的多核CPU處理的報文提前轉發,從而避免多核CPU在過載情況下丟包現象的發生。附圖說明圖1示出了根據本發明的實施例的多核CPU過載檢測裝置的框圖;圖2示出了根據本發明的實施例的多核CPU過載檢測方法的流程圖;圖3示出了根據本發明的實施例的多核CPU過載檢測方法的具體流程圖。具體實施方式為了能夠更清楚地理解本發明的上述目的、特徵和優點,下面結合附圖和具體實施方式對本發明進行進一步的詳細描述。需要說明的是,在不衝突的情況下,本申請的實施例及實施例中的特徵可以相互組合。在下面的描述中闡述了很多具體細節以便於充分理解本發明,但是,本發明還可以採用其他不同於在此描述的其他方式來實施,因此,本發明的保護範圍並不受下面公開的具體實施例的限制。圖1示出了根據本發明的實施例的多核CPU過載檢測裝置的框圖。如圖1所示,根據本發明的實施例的多核CPU過載檢測裝置100包括:採樣計算單元102,用於採集多核CPU中每個數據核中部分數據的處理信息,並根據每個數據核的處理信息計算對應數據核的處理時延;綜合時延計算單元104,用於按照預設算法對每個數據核的處理時延進行計算,得到多核CPU的綜合處理時延;時延比較單元106,用於將綜合處理時延與預設處理時延進行比較,當綜合處理時延大於或等於預設處理時延,則判定多核CPU發生過載。多核CPU可以是X86多核CPU,其中包含多個數據核,其中每個數據核都可以處理數據,而當數據核的負載較大時,其處理數據的速度也會變慢,即處理數據的時延增加,通過檢測每個數據核處理數據的時延,可以計算出多核CPU處理數數的綜合處理時延,而綜合處理時延就可以反映出多核CPU處理數據負載情況,即綜合處理時延越大,負載就越大,當綜合處理時延超過一定數值(預設處理時延)後,即可判定多核CPU處理處於過載狀態,由於多核CPU中每個數據核處理數據的時延可以直接而準確地反映出數據核的負載情況,從而通過多核CPU的綜合處理時延,就可以準確地判定出多核CPU是否過載。優選地,採樣計算單元102包括:數據採樣子單元1022,用於確定預設起始數據,並從預設起始數據開始採集數據,直至採集到預設數據量的數據為止,將採集到的數據作為部分數據;時延計算子單元1024,用於計算部分數據的處理結束時間和處理起始時間之差,作為對應數據核的處理時延。採集數據的具體方式可以是在採集一定數量的數據,比如從某個指定的數據開始採集,直至採集到所需數量的數據為止,然後根據這些數據的處理信息,即處理結束時間和處理起始時間,將兩者做差,差值即該數據核的處理時延,而數據的處理信息可以準確地存儲在數據核中,從而可以方便且準確地提取出來進行計算,進而準確地判斷出多核CPU的負載情況。優選地,採樣計算單元102包括:數據採樣子單元1022,用於確定預設採樣時間,並從預設採樣時間開始採集數據,直至採集預設時間長度為止,將採集到的數據作為部分數據;時延計算子單元1024,用於計算部分數據的處理結束時間和處理起始時間之差,作為對應數據核的處理時延。採集數據的具體方式可以是在採集一定時間段內的數據,比如從某個指定的時間點開始採集,直至採集一定時間後停止,然後根據這些數據的處理信息,即處理結束時間和處理起始時間,將兩者做差,差值即該數據核的處理時延,而數據的處理信息可以準確地存儲在數據核中,從而可以方便且準確地提取出來進行計算,進而準確地判斷出多核CPU的負載情況。需要說明的是,上述預設處理時延、預設起始數據、預設數據量、預設採樣時間和預設時間長度都可以有用戶根據需要進行設置,以滿足用戶的具體需要。優選地,綜合時延計算單元104用於對每個數據核的處理時延進行加權平均計算,並將計算結果作為綜合處理時延。具體可以通過對每個數據核的處理時延進行加權平均計算,從而準確地得出多核CPU的綜合處理時延。優選地,還包括:報文轉發單元108,用於在時延比較單元106判定多核CPU發生過載後,將多核CPU的數據報文進行轉發。當多核CPU過載時,就有可能發生鏈路丟包的現象,而在判定過載時,直接將多核CPU的部分數據報文進行轉發,可以有效地避免丟包現象的發生,保證多核CPU在過載情況下數據包也能正常轉發。同時,還可以在CPU過載時顯示提示信息,以提示用戶存在過載。圖2示出了根據本發明的實施例的多核CPU過載檢測方法的流程圖。如圖2所示,根據本發明的實施例的多核CPU過載檢測方法包括:步驟202,採集多核CPU中每個數據核中部分數據的處理信息,並根據處理信息計算對應數據核的處理時延;步驟204,按照預設算法對每個數據核的處理時延進行計算,得到多核CPU的綜合處理時延;步驟206,將綜合處理時延與預設處理時延進行比較,當綜合處理時延大於或等於預設處理時延,則判定多核CPU發生過載。多核CPU可以是X86多核CPU,其中包含多個數據核,其中每個數據核都可以處理數據,而當數據核的負載較大時,其處理數據的速度也會變慢,即處理數據的時延增加,通過檢測每個數據核處理數據的時延,可以計算出多核CPU處理數數的綜合處理時延,而綜合處理時延就可以反映出多核CPU處理數據負載情況,即綜合處理時延越大,負載就越大,當綜合處理時延超過一定數值(預設處理時延)後,即可判定多核CPU處理處於過載狀態,由於多核CPU中每個數據核處理數據的時延可以直接而準確地反映出數據核的負載情況,從而通過多核CPU的綜合處理時延,就可以準確地判定出多核CPU是否過載。優選地,步驟202包括:步驟2022,確定預設起始數據,並從預設起始數據開始採集數據,直至採集到預設數據量的數據為止,將採集到的數據作為部分數據;步驟2024,計算待計算數據的處理結束時間和處理起始時間之差,作為對應數據核的處理時延。採集數據的具體方式可以是在採集一定數量的數據,比如從某個指定的數據開始採集,直至採集到所需數量的數據為止,然後根據這些數據的處理信息,即處理結束時間和處理起始時間,將兩者做差,差值即該數據核的處理時延,而數據的處理信息可以準確地存儲在數據核中,從而可以方便且準確地提取出來進行計算,進而準確地判斷出多核CPU的負載情況。優選地,步驟202包括:步驟2022,確定預設採樣時間,並從預設採樣時間開始採集數據,直至採集預設時間長度為止,將採集到的數據作為部分數據;步驟2024,計算待計算數據的處理結束時間和處理起始時間之差,作為對應數據核的處理時延。採集數據的具體方式可以是在採集一定時間段內的數據,比如從某個指定的時間點開始採集,直至採集一定時間後停止,然後根據這些數據的處理信息,即處理結束時間和處理起始時間,將兩者做差,差值即該數據核的處理時延,而數據的處理信息可以準確地存儲在數據核中,從而可以方便且準確地提取出來進行計算,進而準確地判斷出多核CPU的負載情況。需要說明的是,上述預設處理時延、預設起始數據、預設數據量、預設採樣時間和預設時間長度都可以有用戶根據需要進行設置,以滿足用戶的具體需要。優選地,步驟204包括:對每個數據核的處理時延進行加權平均計算,並將計算結果作為綜合處理時延。具體可以通過對每個數據核的處理時延進行加權平均計算,從而準確地得出多核CPU的綜合處理時延。優選地,還包括:在判定多核CPU發生過載後,將多核CPU的數據報文進行轉發。當多核CPU過載時,就有可能發生鏈路丟包的現象,而在判定過載時,直接將多核CPU的部分數據報文進行轉發,可以有效地避免丟包現象的發生,保證多核CPU在過載情況下數據包也能正常轉發。同時,還可以在CPU過載時顯示提示信息,以提示用戶存在過載。圖3示出了根據本發明的實施例的多核CPU過載檢測方法的具體流程圖。如圖3所示,根據本發明的實施例的多核CPU過載檢測方法的具體包括:步驟302,從多核CPU的每個數據核中按照預定方式採集數據;步驟304,根據採集到的數據,計算每個數據處理數據的時延,再根據每個數據核處理數據的時延得到多核CPU處理數據的綜合時延;步驟306,將多核CPU的綜合處理時延與預先設定的時延(可以是用戶預先設置的,也可以是在確定未過載情況下多核CPU中某個數據核處理數據的時延)進行比較,判斷多核CPU是否發生過載;步驟308,若多核CPU的綜合處理時延小於預設時延,說明多核CPU處理數據仍然較快,沒有發生過載,則繼續處理數據包業務;步驟310,若多核CPU的綜合處理時延大於或等於預設時延,說明多核CPU處理數據較慢,存在過載現象,則直接將多核CPU的部分數據報文直接轉發,從而避免丟包現象的發生。以上結合附圖詳細說明了本發明的技術方案,考慮到相關技術中,通過CPU利用率判斷CPU是否過載的方法實現較困難,而且準確度不高。通過本發明的技術方案,能夠根據多核CPU處理數據的時延來方便且準確地判斷多核CPU是否發生過載,進而將過載的多核CPU處理的報文提前轉發,從而避免多核CPU在過載情況下丟包現象的發生。以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。