《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于主動隊列管理的Linux并發服務器模型及負載均衡算法的研究

基于主動隊列管理的Linux并發服務器模型及負載均衡算法的研究

2008-05-05
作者:黃偉志1,湯 莉2,劉 軍3

  摘 要: 提出了一種基于主動隊列管理的并發服務器模型,在主動隊列管理的并發服務器模型下,研究了服務器對各隊列、各線程運用負載均衡" title="負載均衡">負載均衡的策略和算法。
  關鍵詞: 并發服務器 負載均衡 主動隊列管理


  互聯網用戶數和網絡流量的幾何級數增長對網絡服務器的可用性提出了更高要求。當網絡數據流不能在各服務器之間有效分配時,會出現負載失衡。
  針對該問題,本文在單服務器模式下,通過合理分配線程、協調隊列、采用單服務器主動管理隊列等方法實現了多線程多任務下的負載均衡。
1 基于主動隊列管理的并發型服務器模型
1.1 服務器的分類和簡介

  在實際的網絡程序中,通常都是許多客戶機對應一臺服務器。為處理客戶機的請求,對服務端的程序提出了特殊要求。目前最常用的服務器模型分為兩種:(1)循環服務器,在同一個時刻僅響應一個客戶端" title="客戶端">客戶端的請求;(2)并發服務器,在同一個時刻可響應多個客戶端請求。
  循環服務器包括數據報協議(UDP)服務器和傳輸控制協議(TCP)服務器。實現非常簡單:數據報協議服務器每次從套接字上讀取一個客戶端的請求進行處理,然后將結果返回給客戶機;傳輸控制協議服務器接受一個客戶端的連接請求,然后處理,完成了該客戶的所有請求后,斷開連接。
  并發服務器的思想是每個客戶機的請求不由服務器直接處理,而是服務器創建一個子進程來處理。這樣可以使服務器進程在同一時間有多個子進程與不同的客戶程序連接和通信。在客戶程序看來,服務器可以并發地處理多個客戶的請求。
  一般TCP/IP服務器通信軟件" title="通信軟件">通信軟件均為并發型,即由一個守護進程負責監聽客戶機的連接請求,并生成一個或多個子進程與客戶機建立連接,以完成通信。其缺點是隨著連接客戶機數量的增多,生成的通信子進程數量也會隨之增多,在客戶機數量較多的應用場合勢必影響服務器的運行效率。一般的循環服務是指服務器在接收客戶機的連接請求后即與之建立連接,只有處理完與客戶機的通信任務后,才能再去接收另一客戶機的請求連接。其優點是不必生成通信子進程。缺點是客戶機在每次通信之前都要與服務器建立連接,開銷過大,不能用于隨機的數據通信和繁忙的業務處理。
1.2 模型的提出
  本文提出了一種新型的基于主動隊列管理的并發型服務器通信軟件的設計方法,不同于一般的并發型服務器和循環型服務器通信軟件,它摒棄了上述兩類服務器的缺點,綜合其優點。該軟件的優點是:生成子進程數目少;設定了子線程的上限值;繼承了并發通信的優點,容易對客戶機與服務器的連接進行管理;適用于客戶機數量較多和隨機數據通信的情況,能夠有效地提高服務器的運行效率。服務器系統模型圖如圖1所示。


  這種設計方法的基本思想是:首先設置服務器子線程數的上限值TNMAX,避免子線程數過多,影響效率。然后將服務器設為監聽狀態。當第一臺客戶機C1向服務器請求連接時,服務器的守護進程與之建立初始連接L0,客戶機利用L0向服務器發送IP地址和端口號" title="端口號">端口號,守護進程將客戶機的IP地址和端口號登記在共享內存的記錄中,然后關閉L0。由守護進程生成的一個通信子進程Pc1,從共享內存中獲得客戶機IP地址及端口號后,建立一個與客戶機的連接L1,準備進行讀寫,并分配可用的線程數,同時設置當前與服務器連接的客戶端數,設置分配給它的線程數。守護進程繼續監聽來自客戶端的連接。當另一臺客戶機C2請求連接時,將客戶機IP地址和端口號同樣登記在共享內存中。守護進程再生成一個通信子進程Pc2,建立與客戶機的連接L2,然后添加隊列,分配可用線程數,同時更新服務器記錄的客戶端數和各自對應分配的線程數。這樣逐一連接客戶端,生成通信子進程,添加隊列,直至達到子線程數的上限值。當達到上限值TNMAX時,若再有客戶機連接,則服務器回復消息令其等待,客戶機輪詢直至被分配到線程。當某個客戶端傳輸完畢時,刪除隊列,刪除分配的線程數,終止子進程,并更新服務器的記錄。這樣做不僅發揮了并發服務器的優點,且避免了子進程過多的缺點。服務器通過主動的隊列管理機制實現對多個客戶端的協調和處理,極大地提高了運行效率。
1.3 進程管理的實現
  在本系統中,服務器采用基于主動消息隊列管理的并發服務器模型。并發服務器的引入是與進程密切相關的,且Linux的進程管理也非常符合并發服務器的工作原理。本系統實現Linux服務器端的通信和進程管理,步驟如下:
  (1)服務器端打開一個已知的監聽端口;
  (2)在監聽端口上監聽客戶機的連接請求,當有一客戶機請求連接時,建立連接線路并返回通信文件描述符" title="描述符">描述符;
  (3)父進程創建一子進程,父進程關閉通信文件描述符,并繼續監聽端口上的客戶機連接請求;
  (4)子進程通過通信文件描述符與客戶機進行通信,通信結束后終止子進程,并關閉通信文件描述符。
  系統服務器端管理流程圖如圖2所示。


2 多線程多隊列的負載均衡算法研究
2.1 研究現狀

  多線程之間的負載均衡問題是系統的一個研究重點。
  一般地,負載均衡機制主要包括兩大部分:信息策略和定位策略。
  (1)信息策略可描述網絡存儲資源的使用狀況。描述負載信息所采用的參數有:運行隊列中的任務數和存儲占用情況等。
  (2)定位策略:指如何選擇網絡存儲服務器來接受客戶端的網絡存儲任務請求。即調度算法,如輪轉調度、加權輪轉、最少鏈接和目標地址散列等。
  本系統主要運用信息策略、主動管理和分配運行的隊列和線程,從而實現對各線程之間的負載均衡,并達到限制網速和帶寬的目的。此外,本系統采用的是單服務器端,而不是集群服務器。所以在算法和設計上不能遵循傳統的集群服務器關于負載均衡的理論和思想。
2.2 本系統采用的負載均衡算法
  目前負載均衡技術采用的算法有:輪循均衡、權重輪循均衡、隨機均衡、響應速度均衡、最少連接數均衡和處理能力均衡等[2]。本文提出一種基于隊列管理的負載均衡算法。其算法思想如下。
  對于來自每個客戶端的請求消息,根據隊列的數量進行響應:
  (1)當客戶端數為0時,設新客戶端為A,則A的線程數為TNMAX,A的帶寬為BLMAX
  (2)當客戶端數為1時,B的線程數為A的線程數的一半取下限,A的線程數為其本身的線程數一半取上限;客戶端數增為2;
  (3)當客戶端數為2時,C的線程數為A,B線程數的最大值的一半取下限,修改A的值;客戶端數增為3。其他情況類似;
  (4)當客戶端數為5時,則回應等待。
  計算公式:TNi=f(CN,TNMAX,BL)
  其中,參數TNi是分配給客戶端的線程數;BL是服務器端Linux操作系統安裝的帶寬,這里為100 Mbps;TNMAX=5,是線程總數的上限值(根據環境影響和實際情況等,可擴充);標志位CN用來顯示當前連接的客戶端數目,設定初值為0。
  下面列舉實例,加以說明。
  初值表示為:BL=100Mbps,TNMAX=5,CN=0;
  如果有客戶端A來申請連接時,則返回當前可用的線程數,更新標志位:
  TNA1=5,CN=1;
  當連接和發送過程中,有另一新客戶端B申請連接時,則更新標志位:
  TNA2=3,TNB2=2,CN=2;
  這里采用的算法是,由于B從A得到A線程數的一半并取下限,A取得本身線程數一半的上限。計算公式為:
  TNB2=TNA1/2(取下限),TNA2=TNA1/2(取上限)
  當有新客戶端C申請連接時,則更新標志位和客戶端數:
  TNA3=2,TNB3=2,TNC3=1,CN=3;
  計算方法是首先比較A和B的線程數,取值大的分配給線程C,計算公式為:
  TNC3=MAX(TNA2,TNB2)/2(取下限),TNA3=TNA2-TNC3
  以次類推,當有客戶D申請分配線程時,
  TNA4=1,TNB4=2,TNC4=1,TND4=1,CN=4;
  這里當A和B線程數相等時,客戶D仍是從客戶A分配到一個線程。
  當有新客戶端E申請連接時,則更新標志位和客戶端數:
  TNA5=1,TNB5=1,TNC5=1,TND5=1,TNE5=1,CN=5;
  計算方法是首先比較A和B的線程數,取值大的分配給線程E,計算公式為:
  TE5=MAX(TNA4,TNB4)/2(取下限)
  這是把5個線程分配給若干客戶端的過程,實現了多個線程的負載平衡,并限制客戶的帶寬。
  設計模式:當客戶端發出請求后,如果服務器端回應“等待(wait)”,則已經沒有可用線程,客戶輪詢等待;若服務器端回應“發送(send)”,客戶開始詢問服務器端的可用線程數,服務器端回應可用的線程數,后臺進行壓縮和多線程處理,開始自動上傳。
  本文提出了一種改進的并發服務器模型,這種服務器模型能更好地處理進程調度,實現了隊列之間的負載均衡,增強了系統的可靠性。
參考文獻
1 岑駕科,邵秀麗.負載均衡策略及可擴展存儲資源預約協議.計算機工程與應用,2005;41(7):157~159
2 彭德巍,何炎祥.基于Agent的負載均衡框架應用研究.計算機工程與應用,2005;41(5):153~155

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一本到12不卡视频在线dvd| 欧美在线视频网站| 亚洲欧美伊人| 亚洲视频在线看| 日韩视频免费| 亚洲精品自在久久| 91久久在线观看| 亚洲电影免费在线 | 久久国产精品久久久久久| 亚洲综合导航| 亚洲欧美日韩网| 亚洲欧美精品在线观看| 亚洲综合日韩中文字幕v在线| 亚洲一区二区在线免费观看视频| 一区二区三区高清视频在线观看| 一本色道久久综合一区| 一区二区免费看| 中日韩视频在线观看| 亚洲五月六月| 午夜精品久久久99热福利| 欧美一区二区三区精品| 久久成人免费日本黄色| 亚洲精品1234| 日韩一级精品视频在线观看| 99伊人成综合| 亚洲欧美日韩国产综合精品二区| 午夜综合激情| 久久精品99国产精品酒店日本| 久久国产视频网| 久久免费的精品国产v∧| 麻豆精品精华液| 欧美精品在线播放| 欧美性视频网站| 国产日本欧美一区二区三区| 国内视频精品| 亚洲激情校园春色| 一区二区三区波多野结衣在线观看| 亚洲香蕉视频| 久久精品国产亚洲一区二区三区 | 一区二区国产精品| 亚洲欧美日韩直播| 久久久水蜜桃av免费网站| 麻豆免费精品视频| 欧美日韩国产综合视频在线观看 | 99xxxx成人网| 午夜精品久久久久久久久久久久久| 久久国产精品久久久久久久久久 | 欧美在线观看www| 亚洲欧洲日韩女同| 亚洲男人影院| 美乳少妇欧美精品| 国产精品黄色| 黄色影院成人| av成人国产| 欧美在线一级视频| av成人动漫| 久久精品国产亚洲aⅴ| 欧美国产日韩精品免费观看| 国产精品乱码妇女bbbb| 激情文学一区| 日韩一区二区久久| 欧美一区国产在线| 亚洲视频在线观看网站| 久久久久久久久岛国免费| 欧美精品一区在线观看| 国产亚洲精品bv在线观看| 亚洲精品久久久久中文字幕欢迎你| 亚洲男人第一av网站| 亚洲三级免费电影| 欧美与欧洲交xxxx免费观看| 欧美国产精品专区| 国产欧美日韩高清| 亚洲免费大片| 久久精品亚洲精品| 亚洲男人av电影| 欧美精品 日韩| 国产亚洲午夜| 91久久在线视频| 久久精品二区亚洲w码| 亚洲欧美福利一区二区| 欧美成人精品一区二区| 国产欧美日韩不卡| 一区二区精品| 999在线观看精品免费不卡网站| 久久狠狠一本精品综合网| 亚洲国产高清高潮精品美女| 中日韩高清电影网| 久久成人精品一区二区三区| 一区二区欧美亚洲| 亚洲精品欧美极品| 久久久久久成人| 国产精品久久久久9999高清| 91久久精品美女| 欧美中文字幕精品| 亚洲欧美日韩中文视频| 欧美绝品在线观看成人午夜影视| 国产在线乱码一区二区三区| 亚洲一级免费视频| 在线一区二区视频| 欧美第一黄网免费网站| 国内精品久久久久久久影视麻豆 | 久久精品日韩欧美| 国产精品初高中精品久久| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲精品日韩在线| 亚洲国产裸拍裸体视频在线观看乱了 | 久久精品国产一区二区三区免费看 | 亚洲影视九九影院在线观看| 一区二区三区日韩| 欧美久久婷婷综合色| 在线看片第一页欧美| 亚洲成色777777在线观看影院| 久久国产综合精品| 国产欧美一区二区精品性色| 亚洲一区二区毛片| 亚洲尤物在线视频观看| 国产精品第13页| 亚洲一区二区三区视频播放| 亚洲在线观看免费视频| 国产精品盗摄一区二区三区| 亚洲午夜电影| 欧美亚洲一区二区三区| 国产精品乱子久久久久| 亚洲一区二区三区在线看| 午夜激情一区| 国产麻豆综合| 欧美一区二视频| 久久一区二区精品| 亚洲高清二区| 一本大道久久a久久精二百| 欧美日韩精品系列| 这里只有精品电影| 亚洲欧美日韩国产精品| 国产精品亚洲网站| 欧美一级播放| 久久这里有精品视频| 在线观看一区欧美| 亚洲精品在线免费观看视频| 欧美精品粉嫩高潮一区二区| 亚洲精品欧美日韩| 亚洲一区激情| 国产亚洲欧美激情| 亚洲国产另类 国产精品国产免费| 欧美成人免费一级人片100| 亚洲精品国产精品乱码不99按摩| 亚洲婷婷免费| 国产欧美午夜| 亚洲国产精品电影| 欧美日韩国产综合视频在线| 亚洲一区免费观看| 久久久久久亚洲综合影院红桃| 在线播放不卡| 中文在线不卡| 国产日产高清欧美一区二区三区| 久久精品国产清高在天天线| 欧美精品一级| 亚洲欧美国产毛片在线| 麻豆久久婷婷| 在线亚洲+欧美+日本专区| 久久精品99久久香蕉国产色戒| 一区在线影院| 亚洲资源av| 精品粉嫩aⅴ一区二区三区四区| 亚洲精品永久免费| 国产精品一区二区三区久久| 亚洲国产成人porn| 国产精品久久久久aaaa| 久久精品观看| 欧美午夜宅男影院在线观看| 欧美一区二区在线观看| 欧美日韩1区2区| 欧美一区二区视频免费观看| 欧美二区不卡| 亚洲欧美日韩久久精品 | 韩国v欧美v日本v亚洲v| 一区二区三区久久精品| 国产欧美一级| 日韩视频免费在线观看| 国产欧美在线视频| 在线亚洲精品| 激情自拍一区| 亚洲欧美一区二区三区在线| 在线观看国产精品淫| 亚洲免费一区二区| 亚洲国产美女久久久久 | 麻豆成人91精品二区三区| 在线一区二区三区做爰视频网站 | 午夜精品亚洲一区二区三区嫩草| 欧美大色视频| 新狼窝色av性久久久久久| 欧美另类高清视频在线| 久久国产精品网站| 国产精品久久一级| 亚洲美女视频| 好看的av在线不卡观看| 亚洲欧美在线视频观看| 亚洲精品乱码| 麻豆精品网站| 欧美一二区视频| 国产精品ⅴa在线观看h|