《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于主動隊列管理的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亚洲国产精品_日韩亚洲一区二区
一本色道久久88综合亚洲精品ⅰ| 久久精品五月| 一区二区三区中文在线观看| 国产精品亚洲成人| 欧美激情中文字幕在线| 老牛嫩草一区二区三区日本| 久久精品欧洲| 久久久亚洲综合| 久久久91精品国产| 久久精品一区二区三区不卡牛牛| 久久成人av少妇免费| 久久成人18免费网站| 欧美专区在线观看| 久久精品99国产精品日本| 欧美一区二区三区免费在线看 | 制服诱惑一区二区| 一本久久a久久精品亚洲| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲精品国产精品乱码不99| 亚洲日本欧美日韩高观看| 亚洲精品久久嫩草网站秘色| 亚洲精品中文字幕在线观看| 一本大道久久a久久精品综合| 在线视频欧美精品| 亚洲资源av| 欧美一区二区三区在线观看| 久久国产毛片| 免费精品视频| 欧美伦理一区二区| 欧美视频一区二区| 国产精品视频午夜| 国产一区二区在线观看免费| 一区二区在线视频观看| 亚洲国产婷婷综合在线精品| 亚洲伦理精品| 亚洲欧美日韩精品| 亚洲国产精品久久人人爱蜜臀 | 国产视频一区二区在线观看| 激情国产一区二区| 亚洲国产精品va| 一本色道久久综合亚洲精品按摩 | 欧美伊人久久| 米奇777在线欧美播放| 欧美极品在线观看| 国产精品区免费视频| 国产一区二区三区观看| 亚洲激情欧美| 亚洲一区二区三区四区五区黄| 欧美主播一区二区三区| 亚洲精品视频免费观看| 亚洲自拍电影| 免费日韩成人| 国产精品老牛| 亚洲电影观看| 亚洲香蕉成视频在线观看| 久久精品国产一区二区三| av成人免费在线| 久久精品动漫| 欧美人与禽猛交乱配| 国产精品最新自拍| 亚洲人成毛片在线播放女女| 亚洲专区一区| 日韩视频在线观看一区二区| 欧美一区二区三区精品| 欧美激情女人20p| 国产女人精品视频| 亚洲精品麻豆| 久久精品国产第一区二区三区最新章节 | 亚洲青色在线| 欧美一区二区三区四区高清| 99视频国产精品免费观看| 久久国产精品色婷婷| 欧美黑人在线播放| 亚洲视频国产视频| 亚洲欧美欧美一区二区三区| 亚洲一级网站| 久久精品视频免费| 欧美小视频在线| 国内精品模特av私拍在线观看| 久久女同互慰一区二区三区| 一区二区三区欧美亚洲| 久久成人久久爱| 亚洲尤物精选| 欧美国产日本在线| 国产在线乱码一区二区三区| 制服诱惑一区二区| 亚洲美女视频在线观看| 久久久久久久成人| 国产精品美女| aa级大片欧美| 日韩视频在线观看免费| 免费在线国产精品| 国产一区二区三区在线观看免费 | 亚洲美女电影在线| 亚洲国产精品va在线看黑人动漫| 午夜精品成人在线视频| 欧美日韩国产免费观看| 在线看日韩欧美| 久久精品国产亚洲一区二区三区 | 国产精品午夜国产小视频| 亚洲免费观看高清完整版在线观看| 久久精品国产一区二区电影| 久久av红桃一区二区小说| 国产精品久久久久久久app| 日韩天堂在线观看| 亚洲精品久久久久久久久久久久久| 久久人体大胆视频| 国产欧美在线观看一区| 亚洲婷婷综合久久一本伊一区| 99re66热这里只有精品3直播| 免费成人你懂的| 在线看日韩欧美| 最新高清无码专区| 麻豆国产精品777777在线| 激情五月综合色婷婷一区二区| 午夜精品999| 久久精品一区| 国产一在线精品一区在线观看| 校园春色国产精品| 久久精品盗摄| 国产资源精品在线观看| 久久se精品一区二区| 久久久久久久久久久一区| 国产一区二区你懂的| 久久av红桃一区二区小说| 久久青青草综合| 在线观看欧美精品| 亚洲卡通欧美制服中文| 欧美精品一区二区视频 | 久久嫩草精品久久久精品| 黄色精品在线看| 亚洲国产中文字幕在线观看| 欧美大学生性色视频| 亚洲国产精品热久久| 一本久久综合亚洲鲁鲁五月天| 欧美日韩一区三区| 亚洲视频在线看| 久久激情综合网| 激情成人在线视频| 日韩网站在线观看| 欧美日韩在线一二三| 亚洲欧美另类在线观看| 久久电影一区| 在线观看中文字幕亚洲| 一本色道久久综合亚洲精品婷婷 | 亚洲性感激情| 国产精品视频免费观看www| 午夜日本精品| 久久人人97超碰人人澡爱香蕉 | 亚洲欧美一区二区激情| 久久久久久69| 亚洲国产精品123| 制服丝袜激情欧洲亚洲| 国产麻豆精品视频| 亚洲第一页中文字幕| 欧美激情日韩| 亚洲一区二区三区免费观看| 久久精精品视频| 亚洲人成人99网站| 午夜视频一区二区| 好看的日韩视频| 日韩亚洲一区在线播放| 国产精品久久久久一区二区三区共| 午夜精品理论片| 欧美激情bt| 午夜精品免费视频| 欧美精品一线| 性色av一区二区怡红| 欧美黄色网络| 午夜久久一区| 欧美日韩成人| 欧美在线亚洲| 欧美亚日韩国产aⅴ精品中极品| 性色一区二区三区| 欧美精品一区二区蜜臀亚洲| 香蕉国产精品偷在线观看不卡| 欧美成人精品h版在线观看| 亚洲私人影吧| 欧美成人r级一区二区三区| 中文日韩在线| 欧美成人精品| 性娇小13――14欧美| 欧美日韩精品一区二区天天拍小说 | 亚洲永久在线| 欧美国产第一页| 午夜国产不卡在线观看视频| 欧美精品一区二区三区四区| 欧美一区二区黄色| 欧美视频一区二区在线观看| 亚洲国产va精品久久久不卡综合| 欧美网站在线观看| 亚洲国产精品视频| 国产伦精品一区二区三区在线观看 | 国产在线麻豆精品观看| 中国av一区| 91久久久久久| 久久综合色影院| 性欧美暴力猛交69hd| 欧美亚洲成人精品| 亚洲精品久久在线|