在高運行效率下傳輸數據的方法和裝置制造方法
【專利摘要】本發明實施例公開了一種在高運行效率下傳輸數據的方法和裝置。所述方法包括:監測當前的CPU負載占用率和/或傳輸速率;當所述當前的CPU負載占用率和/或傳輸速率小于對應的最小預設閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,和/或,減小路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值;當所述當前的CPU負載占用率和/或傳輸速率大于或等于對應的最大預設閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,和/或,增大路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值。根據本發明實施例,可以滿足對路由轉發設備的高運行效率的要求。
【專利說明】在高運行效率下傳輸數據的方法和裝置
【技術領域】
[0001]本發明涉及數據傳輸領域,特別是涉及在高運行效率下傳輸數據的方法和裝置。【背景技術】
[0002]Linux TCP/IP(傳輸控制協議 / 網絡協議,Transfer Control Protocol/InternetProtocol)棧由于其安全性、高效性和開源的性質,被廣泛地應用于網絡設備的開發。LinuxTCP/IP棧作為一種路由轉發設備,具有路由轉發功能,該路由轉發功能就是將從A網口進入TCP/IP棧的數據包,通過一定的路由算法從B網口出TCP/IP棧,以達到數據中轉分發的功能,實現數據從A網絡進入到B網絡的目的。
[0003]在Linux TCP/IP棧中,TCP數據傳輸是一種采用滑動窗口機制和確認機制的數據傳輸方式,其具有高可靠性的特點,被廣泛應用在對HTTP (超文本傳輸協議,HyperTextTransfer Protocol)數據和 FTP (文本傳輸協議,File Transfer Protocol)數據的傳輸。
[0004]在實際應用中,通常對TCP/IP棧有高運行效率的要求,即,在TCP/IP棧進行TCP數據傳輸時,要保證傳輸速率高的同時,也要盡量保證CPU負載占用率低。該要求不僅適用于TCP/IP棧,也同樣適用于其它的路由轉發設備。
[0005]目前,迫切需要一種解決方案,以滿足對路由轉發設備的高運行效率的要求。
【發明內容】
[0006]為了解決上述技術問題,本發明實施例提供了在高運行效率下傳輸數據的方法和裝置,以滿足對路由轉發設備的高運行效率的要求。
[0007]本發明實施例公開了如下技術方案:
[0008]根據本發明實施例的第一方面,公開了一種在高運行效率下傳輸數據的方法,包括:
[0009]監測當前的CPU負載占用率和/或傳輸速率;
[0010]當所述當前的CPU負載占用率和/或傳輸速率小于對應的最小預設閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,減小路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值;
[0011]當所述當前的CPU負載占用率和/或傳輸速率大于或等于對應的最大預設閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,增大路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值。
[0012]結合本發明的第一方面,本發明還具有第一種可能,即所述監測當前的CPU負載占用率,包括:
[0013]計算空閑任務在最近一個統計周期內處于運行狀態時的運行時間與統計周期的比值,并作為所述空閑任務在最近一個統計周期內的CPU負載占用率;
[0014]計算I與所述空閑任務在最近一個統計周期內的CPU負載占用率的差值,并作為當前的CPU負載占用率。
[0015]結合本發明的第一方面,本發明還具有第二種可能,即所述監測當前的傳輸速率,包括:
[0016]計算路由轉發設備在最近一個統計周期內接收到的數據包的長度總和;
[0017]計算所述長度總和與統計周期的比值,并作為當前的傳輸速率。
[0018]結合本發明的第一方面,本發明還具有第三種可能,即所述監測當前的CPU負載占用率和/或傳輸速率為:
[0019]統計路由轉發設備中的下層的低優先級任務一次接收的數據包的總個數;
[0020]所述當所述當前的CPU負載占用率和/或傳輸速率小于對應的最小預設閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數具體為:
[0021]當所述總個數小于第一數量閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數;
[0022]當所述當前的CPU負載占用率和/或傳輸速率大于或等于對應的最大預設閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數具體為:
[0023]當所述總個數大于或等于第一數量閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數。
[0024]結合本發明的第一方面的第三種可能,本發明還具有第四種可能,即所述減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數具體為:控制路由轉發設備中的下層的低優先級任務將一次接收的數據包分批次地遞交給上層的高優先級任務;所述增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數具體為:控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務。
[0025]結合本發明的第一方面的第四種可能,本發明還具有第五種可能,即還包括:
[0026]當所述總個數小于或等于第二數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務,所述第二數量閾值小于所述第二數量閾值。
[0027]根據本發明實施例的第一方面,公開了一種在高運行效率下傳輸數據的裝置,包括:
[0028]監測單元,用于監測當前的CPU負載占用率和/或傳輸速率;
[0029]第一控制單元,用于當所述當前的CPU負載占用率和/或傳輸速率小于對應的最小預設閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,減小路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值;
[0030]第二控制單元,用于當所述當前的CPU負載占用率和/或傳輸速率大于或等于對應的最大預設閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,增大路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值。[0031]結合本發明的第二方面,本發明還具有第一種可能,即所述監測單元包括:
[0032]第一計算子單元,用于計算空閑任務在最近一個統計周期內處于運行狀態時的運行時間與統計周期的比值,并作為所述空閑任務在最近一個統計周期內的CPU負載占用率;
[0033]第二計算子單元,用于計算I與所述空閑任務在最近一個統計周期內的CPU負載占用率的差值,并作為當前的CPU負載占用率。
[0034]結合本發明的第二方面,本發明還具有第二種可能,即所述監測單元包括:
[0035]第三計算子單元,用于計算路由轉發設備在最近一個統計周期內接收到的數據包的長度總和;
[0036]第四計算子單元,用于計算所述長度總和與統計周期的比值,并作為當前的傳輸速率。
[0037]結合本發明的第二方面,本發明還具有第三種可能,即所述監測單元包括:
[0038]統計子單元,用于統計路由轉發設備中的下層的低優先級任務一次接收的數據包的總個數;
[0039]所述第一控制單元具體用于,當所述總個數小于第一數量閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數;
[0040]所述第二控制單元具體用于,當所述總個數大于或等于第一數量閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數。
[0041]結合本發明的第二方面的第三種可能,本發明還具有第四種可能,即所述第一控制單元具體用于,當所述總個數小于第一數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包分批次地遞交給上層的高優先級任務;所述第二控制單元具體用于,當所述總個數大于或等于第一數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務。
[0042]結合本發明的第二方面的第四種可能,本發明還具有第五種可能,即還包括:
[0043]第三控制單元,用于當所述總個數小于或等于第二數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務,所述第二數量閾值小于所述第二數量閾值。
[0044]由上述實施例可以看出,與現有技術相比,本發明的優點在于:
[0045]動態監控CPU負載占用率和/或傳輸速率,并根據CPU負載占用率和/或傳輸速率的當前情況,通過控制路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,控制路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值,進而動態調整CPU負載占用率和/或傳輸速率,達到在高傳輸速率和高CPU負載占用率時可以降低CPU負載占用率,在低傳輸速率和低CPU負載占用率時可以提高傳輸速率,滿足對路由轉發設備的高運行效率要求。
【專利附圖】
【附圖說明】
[0046]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0047]圖1為本發明實施例一提供的一種在高運行效率下傳輸數據的方法的流程圖;
[0048]圖2為本發明實施例二提供的另一種在高運行效率下傳輸數據的方法的流程圖;
[0049]圖3為本發明中在低傳輸速率和低CPU負載占用率的場景中傳輸數據的示意圖;
[0050]圖4為本發明中在高傳輸速率和高CPU負載占用率的場景中傳輸數據的示意圖;
[0051]圖5為本發明實施例三提供的一種在高運行效率下傳輸數據的裝置的結構圖;
[0052]圖6為本發明中監測單元的一種結構示意圖;
[0053]圖7為本發明的通訊裝置的結構圖。
【具體實施方式】
[0054]本發明實施例提供了在高運行效率下傳輸數據的方法和裝置。本發明技術方案的核心在于,在傳輸速率和CPU負載占用率都比較低的情況下,增大傳輸速率,而在傳輸速率和CPU負載占用率都比較高的情況下,減小CPU負載占用率。通過這樣的動態控制方式,使傳輸速率和CPU負載占用率達到一種均衡的狀態,從而保證路由轉發設備具有高運行效率。
[0055]為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖對本發明實施例進行詳細描述。
[0056]實施例一
[0057]以TCP/IP棧為例,本發明的發明人在研究中發現,TCP/IP棧運行在軟中斷中,而由于軟中斷具有優先級高,不可搶占等特點,因此,TCP/IP棧在將已進入棧內的所有數據被處理完畢后,才會調度其它任務。出于降低TCP/IP棧的CPU負載占用率的設計考慮,需要TCP/IP棧一次處理盡可能多的數據,這樣就可以減少切換任務的次數,從而降低切換任務消耗的系統開銷,并最終降低了 CPU負載占用率。但是,TCP/IP棧一次處理的數據越多,對其它任務的打斷時間就會越長,TCP/IP棧對數據傳輸的串行處理能力越大,并行處理能力就會越小,從而造成傳輸時延變大。而在傳輸帶寬不受限,TCP窗口一定的情況下,由于傳輸速率與傳輸時延成反比關系,因此,傳輸速率就會相應地變小。也就是說,通過控制TCP/IP棧一次處理的數據量,可以同時改變傳輸速率和CPU負載占用率。即,如果TCP/IP棧一次處理的數據量越大,CPU負載占用率就越小,但同時傳輸時延也就越大,進而傳輸速率也越小。反之,如果TCP/IP棧一次處理的數據量越小,傳輸時延越小,傳輸速率就越大,但同時CPU負載占用率也越大。
[0058]而本發明的發明人還在研究中發現,TCP/IP棧一次處理的數據量的大小可以由quota值決定,quota值即為TCP/IP棧一次處理的數據包的最大個數閾值,當一個網卡驅動遞交給TCP/IP棧的數據包的個數大于quota值時,TCP/IP棧處理完quota值個數據包后就會結束處理,并轉而去處理其它網卡遞交的數據包。因此,當網卡驅動遞交給TCP/IP棧的數據包的個數大于quota值時,通過改變quota值(B卩,TCP/IP棧一次處理的數據包的最大個數閾值),即可改變TCP/IP棧一次處理的數據量。
[0059]另一方面,當網卡驅動遞交給TCP/IP棧的數據包的個數小于quota值時,通過控制網卡驅動遞交給TCP/IP棧的數據包的個數,同樣可以改變TCP/IP棧一次處理的數據量的大小,進而改變傳輸速率和CPU負載占用率。即,如果網卡驅動遞交給TCP/IP棧的數據量越大,CPU負載占用率就越小,但同時傳輸時延越大,進而傳輸速率也越小。反之,如果網卡遞交給TCP/IP棧的數據量越小,傳輸時延越小,傳輸速率就越大,但同時CPU負載占用率也越大。
[0060]在一般的路由轉發設備中,“TCP/IP”棧相當于“上層的高優先級任務”,“網卡驅動”相當于“下層的低優先級任務”。
[0061]因此,在本實施例中,通過控制TCP/IP棧一次處理的數據包的最大個數閾值,和/或,控制網卡驅動遞交給TCP/IP棧的數據包的總個數,來動態改變傳輸速率和CPU負載占用率,使傳輸速率和CPU負載占用率達到一種均衡的狀態,從而保證路由轉發設備具有高運行效率。
[0062]請參閱圖1,其為本發明實施例一提供的一種在高運行效率下傳輸數據的方法的流程圖,該方法包括以下步驟:
[0063]步驟101:監測當前的CPU負載占用率和/或傳輸速率;
[0064]由于CPU負載占用率和傳輸速率的狀態是相同的,即,當CPU負載占用率高時,傳輸速率必然是高的,而當CPU負載占用率低時,傳輸速率必然也是低的。因此,在本步驟中,可以僅監測CPU負載占用率和傳輸速率中的任意一個參數,當然,也可以同時對這兩個參數進行監測。
[0065]其中,監測當前的CPU負載占用率具體包括:計算空閑任務在最近一個統計周期內處于運行狀態時的運行時間與統計周期的比值,并作為所述空閑任務在最近一個統計周期內的CPU負載占用率;計算I與所述空閑任務在最近一個統計周期內的CPU負載占用率的差值,并作為當前的CPU負載占用率。
[0066]監測當前的傳輸速率具體包括:計算路由轉發設備在最近一個統計周期內接收到的數據包的長度總和;計算所述長度總和與統計周期的比值,并作為當前的傳輸速率。
[0067]步驟102:當所述當前的CPU負載占用率和/或傳輸速率小于對應的最小預設閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,減小路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值;
[0068]步驟103:當所述當前的CPU負載占用率和/或傳輸速率大于或等于對應的最大預設閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,增大路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值。
[0069]例如,如果當前的CPU負載占用率小于最小預設閾值,可以減小網卡驅動向TCP/IP棧遞交的數據包的個數,或者,也可以減小TCP/IP棧一次處理的數據包的最大個數閾值(即,改變quota值)。相應的,如果當前的CPU負載占用率大于最大預設閾值,可以增大網卡驅動向TCP/IP棧遞交的數據包的個數,或者,也可以增大TCP/IP棧一次處理的數據包的最大個數閾值。默認情況下,quota值為64,TCP/IP棧一次最多可以處理64個IP包。當然,除了可以根據CPU負載占用率的大小來調整CPU負載占用率和傳輸速率之外,也可以根據傳輸速率的大小來調整CPU負載占用率和傳輸速率。
[0070]需要說明的是,CPU負載占用率和傳輸速率都有其對應的最小預設閾值和最大預設閾值。并且,最小預設閾值和最大預設閾值可以為同一個數值,可以為不同的數值。當最小預設閾值和最大預設閾值為不同的數值時,如果當前的CPU負載占用率或者傳輸速率位于最小預設閾值和最大預設閾值之間,可以認為路由轉發設備處于高運行效率的狀態下,即,處于高傳輸速率和低負載占用率的狀態下。此時,不對傳輸時延進行任何調整。即,既不對下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數進行調整,也不對上層的高優先級任務一次處理的數據包的最大個數閾值進行調整,而是維持當前的數目。
[0071]還需要說明的是,CPU負載占用率和傳輸速率對應的“最小預設閾值”和“最大預設閾值”的具體數值可以根據實際應用場景進行設置,本發明的技術方案對此不做限定。
[0072]由上述實施例可以看出,與現有技術相比,本發明的優點在于:
[0073]動態監控CPU負載占用率和/或傳輸速率,并根據CPU負載占用率和/或傳輸速率的當前情況,通過控制路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,控制路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值,進而動態調整CPU負載占用率和/或傳輸速率,達到在高傳輸速率和高CPU負載占用率時可以降低CPU負載占用率,在低傳輸速率和低CPU負載占用率時可以提高傳輸速率,滿足對路由轉發設備的高運行效率要求。
[0074]實施例二
[0075]發明人在研究中還發現,通常在高傳輸速率和高CPU負載占用率的場景中,網卡驅動一次接收到的數據包的個數就會比較多,而在低傳輸速率和低CPU負載占用率的場景中,網卡驅動一次接收的數據包的個數就會比較少。因此,除了可以直接計算CPU負載占用率和/或傳輸速率的當前值之外,還可以通過網卡驅動一次接收到的數據包的個數來間接確定CPU負載占用率和/或傳輸速率的當前大小情況,并且,根據間接確定的CPU負載占用率和/或傳輸速率的當前大小情況,調整網卡驅動一次向TCP/IP棧遞交的數據包的總個數,以滿足高運行效率的要求。
[0076]其中,當網卡驅動一次接收到的數據包的個數比較多時,說明傳輸速率高,CPU負載占用率高。此時,為了降低CPU占用率,需要減小切換任務的次數,即,需要增大網卡向TCP/IP棧遞交的數據包的總個數。當網卡驅動一次接收到的數據包的個數比較少時,說明傳輸速率低,CPU負載占用率低。此時,為了提高傳輸速率,需要減小傳輸時延,即,需要減小網卡向TCP/IP棧遞交的數據包的總個數。
[0077]對于網卡驅動而言,一種增大其向TCP/IP棧遞交的數據包的總個數的方式是,當網卡驅動一次接收到多少個數據包,就可以向TCP/IP棧遞交多少個數據包。一種減小其向TCP/IP棧遞交的數據包的總個數的方式是,網卡驅動一次接收到的數據包不能全部遞交給TCP/IP棧,而是將接收到的數據包分批次地遞交給TCP/IP棧。
[0078]請參閱圖2,其為本發明實施例二提供的另一種在高運行效率下傳輸數據的方法的流程圖,該方法包括以下步驟:
[0079]步驟201:統計路由轉發設備中的下層的低優先級任務一次接收的數據包的總個數;
[0080]步驟202:當所述總個數小于第一數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包分批次地遞交給上層的高優先級任務;
[0081]步驟203:當所述總個數大于或等于第一數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務。
[0082]在一般情況下,當下層的低優先級任務一次接收的數據包的總個數過小時,即使下層的低優先級任務將一次接收的數據包分批次地遞交給上層的高優先級任務,對傳輸速率的提高不會起到明顯的作用,反而會明顯增大CPU負載占用率。因此,作為一種優選的實施方式,當下層的低優先級任務一次接收的數據包的總個數小于或等于第二數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務,所述第二數量閾值小于所述第二數量閾值。
[0083]需要說明的是,“第一數量閾值”和“第二數量閾值”的具體數值可以根據實際應用場景進行設置,本發明的技術方案對此不做限定。
[0084]由上述實施例可以看出,與現有技術相比,本發明的優點在于:
[0085]動態監控CPU負載占用率和/或傳輸速率,并根據CPU負載占用率和/或傳輸速率的當前情況,通過控制路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,控制路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值,進而動態調整CPU負載占用率和/或傳輸速率,達到在高傳輸速率和高CPU負載占用率時可以降低CPU負載占用率,在低傳輸速率和低CPU負載占用率時可以提高傳輸速率,滿足對路由轉發設備的高運行效率要求。
[0086]如圖3所示,在低傳輸速率和低CPU負載占用率的場景中,需要通過減小網卡驅動一次遞交給TCP/IP棧的數據包的總個數,或者,減小TCP/IP棧一次處理的數據包的最大個數閾值,可以減小TCP/IP棧一次處理的數據量,降低了 TCP/IP棧一次運行時間,及時讓接收端接收到數據包之后回復ACK,進而發送端可以及時滑動窗口并發送新的數據,最終提高傳輸速率。
[0087]如圖4所示,在高傳輸速率和高CPU負載占用率的場景中,需要通過增大網卡驅動一次遞交給TCP/IP棧的數據包的總個數,或者,增大TCP/IP棧一次處理的數據包的最大個數閾值,可以增大TCP/IP棧一次處理的數據量,減少切換任務的次數,從而降低切換任務消耗的系統開銷,并最終降低了 CPU負載占用率。
[0088]實施例三
[0089]與上述一種在高運行效率下傳輸數據的方法相對應,本發明實施例還提供了一種在高運行效率下傳輸數據的裝置。請參閱圖5,其為本發明實施例三提供的一種在高運行效率下傳輸數據的裝置的結構圖,該裝置包括:監測單元501、第一控制單元502和第二控制單元503。下面結合該裝置的工作原理進一步介紹其內部結構以及連接關系。
[0090]監測單元501,用于監測當前的C P U負載占用率和/或傳輸速率;
[0091]第一控制單元502,用于當所述當前的CPU負載占用率和/或傳輸速率小于對應的最小預設閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,和/或,減小路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值;
[0092]第二控制單元503,用于當所述當前的CPU負載占用率和/或傳輸速率大于或等于對應的最大預設閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,和/或,增大路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值。[0093]優選的,如圖6所示,監測單元501包括:
[0094]第一計算子單元5011,用于計算空閑任務在最近一個統計周期內處于運行狀態時的運行時間與統計周期的比值,并作為所述空閑任務在最近一個統計周期內的CPU負載占
用率;
[0095]第二計算子單元5012,用于計算I與所述空閑任務在最近一個統計周期內的CPU負載占用率的差值,并作為當前的CPU負載占用率。
[0096]或者,優選的,監測單元501包括:
[0097]第三計算子單元,用于計算路由轉發設備在最近一個統計周期內接收到的數據包的長度總和;
[0098]第四計算子單元,用于計算所述長度總和與統計周期的比值,并作為當前的傳輸速率。
[0099]優選的,監測單元501包括:
[0100]統計子單元,用于統計路由轉發設備中的下層的低優先級任務一次接收的數據包的總個數;
[0101]第一控制單元502具體用于,當所述總個數小于第一數量閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數;
[0102]第二控制單元503具體用于,當所述總個數大于或等于第一數量閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數。
[0103]進一步優選的,第一控制單元502具體用于,當所述總個數小于第一數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包分批次地遞交給上層的高優先級任務;
[0104]第二控制單元503具體用于,當所述總個數大于或等于第一數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務。
[0105]優選的,該裝置還包括:第三控制單元,用于當所述總個數小于或等于第二數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務,所述第二數量閾值小于所述第二數量閾值。
[0106]由上述實施例可以看出,與現有技術相比,本發明的優點在于:
[0107]動態監控CPU負載占用率和/或傳輸速率,并根據CPU負載占用率和/或傳輸速率的當前情況,通過控制路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,控制路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值,進而動態調整CPU負載占用率和/或傳輸速率,達到在高傳輸速率和高CPU負載占用率時可以降低CPU負載占用率,在低傳輸速率和低CPU負載占用率時可以提高傳輸速率,滿足對路由轉發設備的高運行效率要求。
[0108]實施例四
[0109]本申請實施例還提供了 一種通訊裝置,通訊裝置可能是包含計算能力的主機服務器,或者是個人計算機PC,或者是可攜帶的便攜式計算機或終端等等,本申請具體實施例并不對通訊裝置的具體實現做限定。
[0110]圖7為本申請的通訊裝置的結構圖。如圖7所示,通訊裝置700包括:[0111]處理器(processor)710,通信接 口(Communications Interface) 720,存儲器(memory) 730,總線 740。
[0112]處理器710,通信接口 720,存儲器730通過總線740完成相互間的通信。
[0113]處理器710,用于執行程序732。
[0114]具體地,程序732可以包括程序代碼,所述程序代碼包括計算機操作指令。
[0115]處理器710可能是一個中央處理器CPU,或者是特定集成電路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成實施本申請實施例的一個或多個集成電路。
[0116]存儲器730,用于存放程序732。存儲器730可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。程序732用于執行以下步驟:
[0117]監測當前的CPU負載占用率和/或傳輸速率;
[0118]當所述當前的CPU負載占用率和/或傳輸速率小于對應的最小預設閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,減小路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值;
[0119]當所述當前的CPU負載占用率和/或傳輸速率大于或等于對應的最大預設閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,增大路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值。
[0120]程序732中各步驟的具體實現參見圖5-圖6所示實施例中的相應單元的實現方式,在此不贅述。
[0121]所述領域的技術人員可以清楚地了解到,為了描述的方便和簡潔,上述描述的系統、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0122]在本發明所提供的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以通過其它的方式實現。例如,以上所描述到的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性、機械或其它的形式。
[0123]所述作為分離部件說明的單元可以是或者也可以是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
[0124]另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,可以采用軟件功能單元的形式實現。
[0125]需要說明的是,本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。
[0126]以上對本發明所提供的在高運行效率下傳輸數據的方法和裝置進行了詳細介紹,本文中應用了具體實施例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
【權利要求】
1.一種在高運行效率下傳輸數據的方法,其特征在于,包括: 監測當前的CPU負載占用率和/或傳輸速率; 當所述當前的CPU負載占用率和/或傳輸速率小于對應的最小預設閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,減小路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值; 當所述當前的CPU負載占用率和/或傳輸速率大于或等于對應的最大預設閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,增大路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值。
2.根據權利要求1所述的方法,其特征在于,所述監測當前的CPU負載占用率,包括: 計算空閑任務在最近一個統計周期內處于運行狀態時的運行時間與統計周期的比值,并作為所述空閑任務在最近一個統計周期內的CPU負載占用率; 計算I與所述空閑任務在最近一個統計周期內的CPU負載占用率的差值,并作為當前的CPU負載占用率。
3.根據權利要求1所述的方法,其特征在于,所述監測當前的傳輸速率,包括: 計算路由轉發設備在最近一個統計周期內接收到的數據包的長度總和; 計算所述長度總和與統計周期的比值,并作為當前的傳輸速率。
4.根據權利要求1所述的方法,其特征在于,所述監測當前的CPU負載占用率和/或傳輸速率為: 統計路由轉發設備中的下層的低優先級任務一次接收的數據包的總個數; 所述當所述當前的CPU負載占用率和/或傳輸速率小于對應的最小預設閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數具體為: 當所述總個數小于第一數量閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數; 當所述當前的CPU負載占用率和/或傳輸速率大于或等于對應的最大預設閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數具體為: 當所述總個數大于或等于第一數量閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數。
5.根據權利要求4所述的方法,其特征在于, 所述減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數具體為:控制路由轉發設備中的下層的低優先級任務將一次接收的數據包分批次地遞交給上層的高優先級任務; 所述增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數具體為:控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務。
6.根據權利要求5所述的方法,其特征在于,還包括: 當所述總個數小于或等于第二數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務,所述第二數量閾值小于所述第二數量閾值。
7.一種在高運行效率下傳輸數據的裝置,其特征在于,包括: 監測單元,用于監測當前的CPU負載占用率和/或傳輸速率; 第一控制單元,用于當所述當前的CPU負載占用率和/或傳輸速率小于對應的最小預設閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,減小路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值; 第二控制單元,用于當所述當前的CPU負載占用率和/或傳輸速率大于或等于對應的最大預設閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數,或,增大路由轉發設備中的上層的高優先級任務一次處理的數據包的最大個數閾值。
8.根據權利要求7所述的裝置,其特征在于,所述監測單元包括: 第一計算子單元,用于計算空閑任務在最近一個統計周期內處于運行狀態時的運行時間與統計周期的比值,并作為所述空閑任務在最近一個統計周期內的CPU負載占用率; 第二計算子單元,用于計算I與所述空閑任務在最近一個統計周期內的CPU負載占用率的差值,并作為當前的CPU負載占用率。
9.根據權利要求7所述的裝置,其特征在于,所述監測單元包括: 第三計算子單元,用于計算路由轉發設備在最近一個統計周期內接收到的數據包的長度總和; 第四計算子單元,用于計算所述長度總和與統計周期的比值,并作為當前的傳輸速率。
10.根據權利要求7所述的裝置,其特征在于,所述監測單元包括: 統計子單元,用于統計路由轉發設備中的下層的低優先級任務一次接收的數據包的總個數; 所述第一控制單元具體用于,當所述總個數小于第一數量閾值時,減小路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數; 所述第二控制單元具體用于,當所述總個數大于或等于第一數量閾值時,增大路由轉發設備中的下層的低優先級任務一次向上層的高優先級任務遞交的數據包的總個數。
11.根據權利要求10所述的裝置,其特征在于, 所述第一控制單元具體用于,當所述總個數小于第一數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包分批次地遞交給上層的高優先級任務; 所述第二控制單元具體用于,當所述總個數大于或等于第一數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務。
12.根據權利要求11所述的裝置,其特征在于,還包括: 第三控制單元,用于當所述總個數小于或等于第二數量閾值時,控制路由轉發設備中的下層的低優先級任務將一次接收的數據包一次性遞交給上層的高優先級任務,所述第二數量閾值小于所述第二數量閾值。
【文檔編號】H04L12/803GK103841042SQ201410056844
【公開日】2014年6月4日 申請日期:2014年2月19日 優先權日:2014年2月19日
【發明者】唐剛 申請人:華為技術有限公司