多核cpu負載均衡方法及裝置的制造方法
【技術領域】
[0001] 本發明涉及多媒體通信技術領域,尤其涉及一種多核CPU負載均衡方法及裝置。
【背景技術】
[0002] 在多媒體通信技術領域,需要傳輸或者處理的數據非常大,因此對網絡設備的數 據吞吐能力要求高。對于包含多核CPU的網絡設備,提高多核CPU之間的負載均衡,是提高 網絡設備數據吞吐量的有效途徑。
[0003] 現有技術中,網絡設備可以通過使用散列函數計算數據包的源IP地址、目的IP地 址、端口號的散列值,將不同散列值的數據包發送到與其對應CPU的接收數據包隊列中,由 該CPU接收并處理數據包,實現數據包在網絡設備多核CPU之間的均衡處理。但是現有技 術針對某種散列函數,例如,如果網絡設備具有雙核CPU,如果散列函數為處理CPU的CPU號 =(源IP地址+目的IP地址+端口值)% 2,可能出現多組(源IP地址,目的IP地址,端 口值)經過散列函數的計算后得到的散列值相同的情況,使得某個CPU承擔非常大的負載, 使用這種散列函數不能有效實現多核CPU之間的負載均衡。
【發明內容】
[0004] 本發明提供一種多核CPU負載均衡方法及裝置,以解決現有技術中不能有效實現 多核CPU之間負載均衡的問題,進而可以提高網絡設備并行處理媒體流數據的能力。
[0005] 根據本發明實施例的第一方面,提供一種多核CPU負載均衡方法,所述方法應用 于網絡設備,所述網絡設備具有多核CPU,所述網絡設備與多個媒體流發送端連接,所述方 法包括:
[0006] 接收每個媒體流發送端發送的媒體流數據;
[0007] 解析所述每個媒體流發送端發送的媒體流數據,獲得所述每個媒體流發送端的媒 體流數據的目的端口;
[0008] 根據所述目的端口,獲取所述每個媒體流發送端的媒體流數據對應的處理CPU,其 中,所述媒體流數據對應的處理CPU,為所述網絡設備對所述多個媒體流發送端單位時間內 發送的媒體流數據進行CPU處理耗時預測后確定的所述網絡設備中對每個媒體流發送端 的媒體流數據進行CPU處理耗時預測時負載最小的CPU;
[0009] 使用所述處理CPU對所述媒體流數據進行處理。
[0010] 根據本發明實施例的第二方面,提供一種多核CPU負載均衡裝置,所述裝置應用 于網絡設備,所述網絡設備具有多核CPU,所述網絡設備與多個媒體流發送端連接,所述裝 置包括:
[0011] 接收單元,用于接收每個媒體流發送端發送的媒體流數據;
[0012] 解析單元,用于解析所述每個媒體流發送端發送的媒體流數據,獲得所述每個媒 體流發送端的媒體流數據的目的端口;
[0013] 分發單元,用于根據所述目的端口,獲取所述每個媒體流發送端的媒體流數據對 應的處理CPU,其中,所述媒體流數據對應的處理CPU,為所述網絡設備對所述多個媒體流 發送端單位時間內發送的媒體流數據進行CPU處理耗時預測后確定的所述網絡設備中對 每個媒體流發送端的媒體流數據進行CPU處理耗時預測時負載最小的CPU;
[0014] 處理單元,用于使用所述處理CPU對所述媒體流數據進行處理。
[0015] 應用本發明實施例,網絡設備接收到媒體流發送端發送的媒體流數據時,即可解 析媒體流數據獲得該媒體流數據的目的端口,根據該目的端口可獲取媒體流數據的處理 CPU,由該處理CPU對媒體流數據進行處理即可。本發明根據媒體流數據的目的端口獲取到 的對應的處理CPU為所述網絡設備對所述多個媒體流發送端單位時間內發送的媒體流數 據進行CPU處理耗時預測后確定的所述網絡設備中對每個媒體流發送端的媒體流數據進 行CPU處理耗時預測時負載最小的CPU,解決了現有技術中不能有效實現多核CPU之間負載 均衡的問題,可以提高網絡設備并行處理媒體流數據的能力。
【附圖說明】
[0016] 此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本發明的實施 例,并與說明書一起用于解釋本發明的原理。
[0017] 圖1為本發明實施例的一個應用場景示意圖;
[0018] 圖2為本發明一種實施方式中多核CPU負載均衡方法流程圖;
[0019] 圖3為本發明一種實施方式中建立負載均衡表的方法流程圖;
[0020] 圖4為本發明一種實施方式中多核CPU負載均衡裝置所在網絡設備的一種硬件結 構圖;
[0021] 圖5為本發明一種實施方式中多核CPU負載均衡裝置框圖。
【具體實施方式】
[0022] 為便于對本發明的理解,下面將結合附圖以具體實施例做進一步的解釋說明,實 施例并不構成對本發明保護范圍的限定。
[0023] 本發明實施例提供的技術方法可應用于視頻監控領域、視頻點播領域等多媒體通 信技術領域,參見圖1,為本發明實施例的一個應用場景示意圖:
[0024] 圖1中,每個媒體流發送端與網絡設備通過網絡進行通信,本發明中網絡設備具 有多核CPU。其中,在視頻監控領域,媒體流發送端可以為IPC(IPCamera,網絡攝像機)、 網絡設備可以為NVR(NetworkVideoRecorder,網絡視頻錄像機)設備,或者DVR(Digital VideoRecorder,硬盤錄像機);或者媒體流發送端為NVR設備、DVR設備,網絡設備為視頻 管理服務器,網絡設備還可以為中心媒體轉發服務器,監控前端設備可通過網絡向網絡設 備發送媒體流數據。在視頻點播領域,媒體流發送端可以為視頻資源運營網站設置的視頻 服務器,網絡設備可以為用戶的手機、PC等客戶端設備,客戶端設備可以向視頻服務器請求 媒體流數據。使用本發明實施例提供的技術方案,網絡設備可以對每個媒體流發送端將要 發送的媒體流數據進行CPU處理耗時預測,在網絡設備接收到媒體流數據時,即可解析媒 體流數據得到該媒體流數據的目的端口,根據該目的端口獲取媒體流數據對應的處理CPU 為網絡設備對多個媒體流發送端單位時間內發送的媒體流數據進行CPU處理耗時預測后 確定的網絡設備中對每個媒體流發送端的媒體流數據進行CPU處理耗時預測時負載最小 的CPU,由此本發明可實現網絡設備上多核CPU之間的負載均衡。本申請文件中所言的目的 端口為接收媒體流數據的網絡設備的本地端口。
[0025] 參見圖2,為本發明一種實施方式中多核CPU負載均衡方法流程圖:
[0026] 步驟201 :接收每個媒體流發送端發送的媒體流數據。
[0027] 網絡設備一般通過網卡接收媒體流發送端發送的媒體流數據。
[0028] 步驟202 :解析所述媒體流數據,獲得所述媒體流數據的目的端口。
[0029] 網絡設備的網卡對接收到的媒體流數據進行緩存,當緩存滿一幀數據后,觸發中 斷,然后解析媒體流數據的幀頭數據即可獲取媒體流數據的目的端口。
[0030] 步驟203 :根據所述目的端口,獲取所述每個媒體流發送端的媒體流數據對應的 處理CPU,其中,所述媒體流數據對應的處理CPU,為所述網絡設備對所述多個媒體流發送 端單位時間內發送的媒體流數據進行CPU處理耗時預測后確定的所述網絡設備中對每個 媒體流發送端的媒體流數據進行CPU處理耗時預測時負載最小的CP