[發明專利]一種海量數據多線程并行處理中的負載均衡方法有效
| 申請號: | 201210315602.7 | 申請日: | 2012-08-31 |
| 公開(公告)號: | CN102866922A | 公開(公告)日: | 2013-01-09 |
| 發明(設計)人: | 彭建華;徐立中;石愛業;周惠;郭宇燕;高紅民 | 申請(專利權)人: | 河海大學 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 南京經緯專利商標代理有限公司 32200 | 代理人: | 許方 |
| 地址: | 210098 *** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 海量 數據 多線程 并行 處理 中的 負載 均衡 方法 | ||
技術領域
本發明涉及海量數據的多線程并行處理,尤其涉及一種海量數據多線程并行處理中的負載均衡方法,屬于計算機網絡技術領域。
背景技術
在大規模部署的終端設備接入與海量數據并發處理系統中,系統單位時間內接收處理數據量非常大,系統接收后馬上產生一個新的線程,對接收的數據進行處理這種方法,系統并發性效率將會顯著降低,這是由于創建線程需要較多系統開銷、同時頻繁分配、釋放系統資源也要花費較多時間,為了盡力減少系統不必要的開銷以及計算時間,提高系統并行處理能力,一般采用多線程、線程池的方式進行,通過接收與處理分離的,采用FIFO方式處理數據,也就是先到達的數據先處理。
系統接收數據后,如果隨機或簡單地對接收數據進行分配,由于線程對計算機時間片的分配以及數據內容的不同,每個數據處理的時間將不一致,隨機分配將會造成數據處理線程池有的線程空閑,有的線程數據區中排放大量待處理數據,嚴重影響系統的性能,影響系統并發處理能力。
發明內容
本發明所要解決的技術問題在于提供一種海量數據多線程并行處理中的負載均衡方法,能夠將數據優先分配至當前比較空閑的數據處理線程進行處理,從而顯著提高大規模部署的終端設備接入能力與海量數據的并行處理、密集計算的能力。
本發明具體采用以下技術方案:
一種海量數據多線程并行處理中的負載均衡方法,服務端利用多個并行的數據處理線程對接收到的數據進行處理,對于每一個新接收到的數據包,服務端按照以下方法為其分配數據處理線程:
判斷是否存在當前待處理數據包個數C為0或者已處理數據包個數n為0的數據處理線程,如是,則將新收到的數據包分配給其中任意一個數據處理線程;如否,則將新收到的數據包分配給相對空閑率最高的數據處理線程,所述數據處理線程的相對空閑率按照以下公式計算:
式中,為相對空閑率;為該數據處理線程當前待處理數據包個數;為該數據處理線程在處理n個數據包后的數據處理效率,其表達式為如下:
其中,n為已處理數據包個數,為該數據處理線程處理第n個數據包所耗費時間。
本發明的線程空閑率由兩個因數決定:線程中排隊待處理的數據包數以及線程處理數據的效率。通過線程對已處理數據包的時間進行線性平均得到當前線程的數據處理效率,線程中排隊待處理的數據包與線程處理效率值的乘積,預測了后續當前線程還要花費多長時間處理完線程中待處理的數據包,這個處理時間越短,則表示后續放入該線程的數據將被更優先處理。同時,該算法計算簡單,基本不耗費計算機資源,執行算法的時間只有千分之一微秒不到,即使海量數據分析處理的情況下,對系統性能、資源的影響也可以忽略。因此,該算法具有很強的實際應用價值。
本發明的負載均衡方法根據每個數據處理線程的待處理數據包個數和數據處理效率計算其相對空閑率,并根據相對空閑率對每個數據處理線程進行合理數據分配,能夠顯著提高系統對海量數據的并行處理、密集計算的能力。
附圖說明
圖1為服務端多線程并行數據處理的原理示意圖;
圖2為服務端多線程并行數據處理的流程示意圖。
具體實施方式
下面結合附圖對本發明的技術方案進行詳細說明:
本發明的思路是在對多線程并行處理的數據進行分配時,根據各數據處理線程的相對空閑率來對每個數據處理線程進行合理數據分配,從而提高系統對海量數據的并行處理、密集計算的能力。
圖1顯示了一個服務端多線程并行數據處理的實例,在該實例中,服務端在進程啟動時,開啟一個數據接收線程R,并創建包含多個數據處理線程D的線程池,以及一個數據分發線程S,同時開辟一段動態存儲區BM,并為線程池中的每一個數據處理線程D開辟一個動態存儲區SM和一個初始值為0的計數器C;數據接收線程R只負責接收數據包并將其存入動態存儲區BM;數據分發線程S循環讀取動態存儲區BM中的數據包,并根據線程池中各數據處理線程的相對空閑率將數據包存入相對空閑率最高的數據處理線程的動態存儲區SM,存入一個數據包則將該數據處理線程的計數器C加1;數據處理線程D從自身的動態存儲區SM中提取數據包進行處理,每處理一個數據包,就將自身的計數器C減1。這樣,計數器C的數值就能夠動態反映該數據處理線程的待處理數據包數量。
詳細的服務端多線程并行數據處理流程如圖2所示,包括以下步驟:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于河海大學,未經河海大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210315602.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種漏嘴可調式漏斗
- 下一篇:復合滾道的球式回轉支承及其加工方法
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





