《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于數據庫集群的動態負載均衡研究與實現
基于數據庫集群的動態負載均衡研究與實現
來源:微型機與應用2011年第2期
何 駿1,熊 偉1,陳 犖1,殷佳欣2
(1.國防科學技術大學 電子科學與工程學院,湖南 長沙410073; 2.中國科學院 軟件所,北京1
摘要: 針對數據庫集群負載問題,提出了一種動態負載均衡方法,并進一步設計、實現了包括CPU使用率、磁盤存儲量、磁盤響應效率、網絡延時、內存使用率等在內的多指標的節點負載測量和實時監控。該算法根據各節點的負載反饋信息進行任務分配,實現了負載均衡。性能分析和實驗表明,該算法具有較高的負載均衡度和較低的系統開銷。
Abstract:
Key words :

摘  要: 針對數據庫集群負載問題,提出了一種動態負載均衡方法,并進一步設計、實現了包括CPU使用率、磁盤存儲量、磁盤響應效率、網絡延時、內存使用率等在內的多指標的節點負載測量實時監控。該算法根據各節點的負載反饋信息進行任務分配,實現了負載均衡。性能分析和實驗表明,該算法具有較高的負載均衡度和較低的系統開銷。
關鍵詞: 動態負載均衡;數據庫集群;負載測量;實時監控

    隨著數據庫技術的發展和各種數據庫產品的產生,數據庫系統在各行各業應用廣泛,隨著應用需求的不斷增加,越來越多的用戶希望能夠透明地訪問和處理來自多個數據庫的數據。同時,電子商務和信息技術的迅猛發展使數據庫管理系統(DBMS)不堪重負,將這些數據庫有機地連接起來,統一管理,協調工作,不但能提高數據庫的性能和可用性,而且解決了遺留系統的問題。對于這些通過網絡連接起來的數據庫而言,必須能夠實時處理大量的用戶請求,而且必須能向客戶提供高質量服務。但是這些系統潛在性能的實際利用率通常僅為1%~10%[1],導致系統運行效率低下。如何才能提高由網絡連接起來的數據庫的響應速度、穩定性和擴展性,并且保護最初的硬件投資;如何避免大量用戶請求對系統帶來的沖擊,負載均衡為設計者提供了一條途徑,它是提高系統資源利用率的一個關鍵技術[2-3],它在后端數據庫間分發客戶請求,以達到減少系統瓶頸、增強系統響應能力。
1 負載均衡
    對于一個分布式計算機系統,由于任務到達的隨機性,以及各處理節點處理能力上的差異,當系統運行一段時間后,某些節點分配的任務還很多(稱之為超載),而另一些節點卻是空閑的(稱之為輕載)。一方面,使超載節點盡可能快地完成任務是當務之急;另一方面,使某些節點空閑是一種浪費。如何避免這種空閑與忙等待并存的情況,從而有效地提高系統的資源利用率,減少任務的平均響應時間,促使負載均衡的產生與發展。
    負載均衡設法對分配給各節點的任務進行重新調度,并通過進程遷移(又稱為任務遷移),使各節點負載大致相等。
    目前普遍使用的數據庫集群系統負載均衡方法包括:
    (1)Random:即隨機選擇法。在后端中隨機選擇一個節點來執行用戶查詢請求;
    (2)Round Robin:即輪詢法。第一個請求發送到第一個后端,第二個請求發送到第二個后端,依此類推。不斷地循環,直到請求又從第一個后端開始;
    (3)Weight Round Robin:即加權輪詢法。與輪詢方法相同,但是給每個后端數據庫分配了一個權重值。這個值決定了這個后端相對于其他后端接受負載的比例。例如,一個后端的權重值為2,那么其負載的請求數是權重為1的后端的兩倍。
    然而,上述負載均衡方法均沒有考慮到不同計算機節點的差異性。隨機選擇法總是隨機選擇數據庫節點,完全不了解后端狀態也完全沒有可控性。而輪詢法和加權輪詢法在各個后端數據庫之間按順序循環執行,這雖然可以使每個后端都有任務,但并不能做到各個后端任務的最優分配。
    因此,需要提供一種數據庫集群系統中進行動態負載均衡的方法和系統,通過對數據庫后端節點的運行狀態進行測量,實時獲得后端節點的響應效率評價值,當集群控制器收到用戶請求時,選擇效率評價值最高的后端節點來執行,以避免后端節點的過熱和故障。
2 動態負載均衡設計
    針對上面負載均衡方法的不足,提出了基于節點狀態的動態負載均衡方法可對存儲節點的即時狀態進行動態測量和計算,與傳統的節點狀態無關的均衡方法相比,動態均衡方法可以更有效地均衡負載、防止熱點和單點故障。
    在如圖1所示的數據庫集群系統中,用戶提出請求后通過集群控制器對數據庫后端節點進行操作。集群控制器包含負載均衡決策組件、后端檢測組件、用戶請求分發組件和負載信息表,其中,負載均衡決策組件用于執行負載均衡決策過程;后端檢測組件用于執行后端負載檢測過程;負載信息表用于保存后端負載檢測過程所得出的測量值;用戶請求分發組件用于暫存用戶請求、發起后端負載檢測過程、發起負載均衡決策過程、并將用戶請求發至決策結果所包含的數據庫后端節點執行。

    數據庫后端節點包含通信組件、數據庫服務器和負載測量組件,其中,通信組件用于接收后端檢測請求、發起負載測量、將負載測量值存入集群控制中的負載信息表中,并接受集群控制器發來的用戶請求,將其發給數據庫服務器執行,將得到的結果集返回至集群控制器;數據庫服務器用于接收通信組件發來的用戶請求并作出應答;負載測量組件用于接收通信組件發來的負載測量請求并作出應答。負載測量組件又進一步包含:CPU使用率檢測模塊、內存使用率檢測模塊、磁盤已占用空間比例檢測模塊、空閑磁盤大小檢測模塊、磁盤IO延遲檢測模塊和網絡延遲檢測模塊。
    動態負載均衡算法如下:
    Step1:Measure the load balancing information
         Create load balance table
         Create load balance trigger
    Step2:Compute the load balancing information
         Normalize the load data
         Compute the entropy of the load data
         Compute the weight of the load data based on the entropy
         Compute the sum of the weight to quantify the load
Step3:Select the node to execute
3 動態負載均衡實現
3.1 負載信息測量

    負載信息測量主要解決節點負載評價問題,目的是為了更確切有效地對節點負載情況進行評價,以準確發現節點是否超載,同時有助于更有效地尋找空閑節點。
    負載測量在動態負載均衡中起著重要的作用,只有負載信息測量準確,才能為進一步的負載決策提供條件,才可以確定節點是否超載,是否需要轉移新任務。
    本文中以CPU使用率、內存使用率、空閑磁盤占用比例、空閑磁盤大小、網絡延遲、磁盤IO延遲作為負載信息的測量對象。
3.1.1 CPU使用率測量CU
      利用Windows API函數可得知CPU空閑時間和系統時間,從而得知CPU空閑使用率,進而得知CPU使用率。CPU空閑使用率CurrentCpuIdle=SysPerfInfo.liIdleTime/SysTimeInfo.liKeSystemTime;CPU
使用率CurrentCpuUsage%=100-(CurrentCpuIdle×100)。
3.1.2 內存使用率測量MU
      利用Windows API函數可直接得知內存使用率,GlobalMemoryStatus(&stat);memory_usage%=stat.dwMemoryLoad。
3.1.3 空閑磁盤占用比例測量DFE
    利用Windows API函數直接可得知空閑磁盤和整個磁盤的大小,它們的比值即為空閑磁盤占用比例。
    fResult=pGetDiskFreeSpaceEx(pszDrive,
        (PULARGE_INTEGER)&i64FreeBytesToCaller,
        (PULARGE_INTEGER)&i64TotalBytes,
        (PULARGE_INTEGER)&i64FreeBytes);
    空閑磁盤占用比例disk_usage%=i64FreeBytes×100/i64TotalBytes。
3.1.4 空閑磁盤大小測量DF
    根據上面的pGetDiskFreeSpaceEx函數可直接得出空閑磁盤大小diskfree=i64FreeBytes/(1024×1024)。
3.1.5 磁盤IO延遲測量IO
    磁盤IO延遲的原理是通過讀取磁盤上的文件時間來得出磁盤IO延遲。
    OutSpeed=(sysafter.wMinute-sysbefore.wMinute)×60000+
    (sysafter.wSecond-sysbefore.wSecond)×1000+
    (sysafter.wMilliseconds-sysbefore.wMilliseconds);
3.1.6 網絡延遲測量ND
  網絡延遲的原理是對各個后端節點執行一條SQL語句,SQL語句運行的時間即為網絡延遲。
    long before=System.currentTimeMillis();
    PreparedStatement pm =conn.prepareStatement("DELETE FROM loadstate");
    pm.executeUpdate();
    long now=System.currentTimeMillis();
    long timegap=now-before;
    圖2所示為在集群管理器中負載均衡測量截圖。

3.2 負載決策
    節點的負載決策是負載均衡的一個重要因素,因為只有系統準確及時地對節點負載進行評價記錄,節點才可以及時準確地確定本身是否超載,是否需要轉移新進任務,同時忙節點也可以有效地尋找空閑節點以轉移自身的超載任務,相反,如果節點負載決策不準確,則節點無法及時準確定位自己的狀態,以至于忙節點在超載的狀態下仍接受新的任務。
    一般地,某個屬性的屬性值變異程度越大,信息熵越小,該屬性提供的信息量越大,即該屬性在方案排序中所起的作用越大,從而該屬性的權重也應該越大;反之,某個屬性的屬性值變異程度越小,信息熵越大,該屬性提供的信息量越小,即該屬性在方案排序中所起的作用越小,從而該屬性的權重也應該越小。
  
計算節點p上的模糊效用值zi;
    步驟5:根據zi(i∈M)對節點進行排序和擇優,zi值最大的為最優節點。
    下面通過一組測得的負載信息數據來說明整個負載決策的流程。
    從3個節點采集到的負載決策矩陣如表1所示。


    步驟1:根據式(1)、式(2)規范化決策矩陣,得到規范化矩陣R如表2所示。
  

    步驟5:根據表格5中模糊效用值對節點進行排序和擇優,zi最大的為最優節點,即第一個節點為最優節點,這時將把任務分配給第一個節點。
4 性能測試與分析
    為了驗證該負載均衡算法的有效性和優越性[5-6],通過實驗進行了驗證。集群由4臺電腦組成,它們由局域網連接而成,網絡帶寬100 Mb/s,4臺電腦配置相同:CPU是Intel(R) Xeon(R) E5405 2.00 GHz,3G內存,Windows XP SP3操作系統。在其中的一臺電腦上配置集群控制器,另外3臺電腦上裝有SQL Server2005數據庫。
    實驗對隨機法、輪詢法、加權輪詢法和動態負載均衡算法的效率進行對比,分別讓集群中幾個節點的狀態不同,首先在3個節點輕載的情況下對4種負載均衡方法進行對比;然后使其中一個節點超載對4種負載均衡進行對比;使其中兩個節點超載再進行對比。
    根據實驗數據得出以上三種實驗的對比圖如圖3、圖4、圖5所示。

    根據實驗可以得出:在節點都很空閑(輕載)的情況下,動態負載均衡不一定是最優的,反而有時因為決策運算會花費時間導致其查詢的時間會更長。在節點輕載和超載不一的時候,動態負載均衡體現出它的優越性,是幾種負載策略中效率最高的;加權輪詢法次之;隨機法和輪詢法效率較低。
    針對分布式數據庫集群關鍵技術的負載均衡進行研究,提出了一種動態負載均衡策略,對于縮短事務平均響應時間和提高整個系統資源利用率起了很好的作用,并通過實驗和其他負載均衡策略進行對比,證明了它的有效性和高效性。在今后的工作中,將進一步完善本文提出的負載均衡這一數據庫集群關鍵技術,進一步提升分布式集群數據庫系統的可靠性、穩定性以及高效性。
參考文獻
[1] YANG X J,DOU Y,HU Q F.Progress and challenges in  high performance computer technology[J].J Comput Sci & Technol,2006,21(5):674-681.
[2] 蔣江,張民選,廖湘科.基于多種資源的負載均衡算法的研究[J].電子學報,2002,30(8):1148-1152.
[3] ZHENG G B.Achieving high performance on extremely large parallel machines:Performance Prediction and Load Balancing[D].Urbana:UIUC,2005.
[4] 徐澤水.不確定多屬性決策方法及應用[M].北京:清華大學出版社,2004.
[5] 陳勇.一種高效的分布式反饋流量負載均衡算法[J].計算機工程,2009,35(2):98-102.
[6] 谷鳳娜,張志斌,王麗宏.基于分布式入侵檢測系統的負載均衡算法的比較[J].計算機科學,2008,35(11):63-73.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品国产三级国产普通话99| 欧美噜噜久久久xxx| 亚洲精品中文字| 欧美自拍偷拍午夜视频| 中文在线不卡视频| 夜夜嗨av色一区二区不卡| 亚洲精品视频中文字幕| 亚洲国产欧美国产综合一区| 伊人色综合久久天天| 国产一区二区三区丝袜| 国产日韩欧美夫妻视频在线观看| 国产精品久久久久久超碰| 欧美日韩在线精品| 欧美日韩高清在线播放| 欧美激情综合五月色丁香小说 | 久久久久久久97| 久久精品首页| 久久亚洲视频| 另类天堂视频在线观看| 蜜臀91精品一区二区三区| 美女精品视频一区| 欧美国产成人精品| 欧美精品v日韩精品v国产精品| 欧美激情精品久久久久久变态| 嫩草影视亚洲| 欧美激情视频一区二区三区免费 | 亚洲国产精品日韩| 亚洲欧洲一区二区三区久久| 亚洲日韩视频| 一区二区三区 在线观看视频 | 美女网站久久| 欧美激情视频一区二区三区在线播放| 欧美国产日韩一区| 欧美日韩一级黄| 国产精品五月天| 激情国产一区二区| 亚洲激情电影在线| 一区二区三区四区五区精品| 午夜亚洲激情| 亚洲国产日韩一区| 一区二区欧美日韩| 欧美一区激情| 免费在线日韩av| 欧美日韩在线播放一区二区| 国产精品视频精品视频| 韩日成人在线| 亚洲精品免费在线观看| 亚洲午夜精品一区二区三区他趣 | 亚洲综合色在线| 久久久美女艺术照精彩视频福利播放| 欧美成人精品h版在线观看| 欧美日韩国产页| 国产女主播一区二区| 在线观看亚洲a| 99ri日韩精品视频| 久久不射2019中文字幕| 99热精品在线观看| 欧美一区二区三区在线| 欧美高清视频在线观看| 国产精品亚洲不卡a| 在线观看视频亚洲| 亚洲午夜视频| 亚洲三级免费电影| 欧美一区三区二区在线观看| 欧美成人精品一区二区三区| 国产精品乱码一区二三区小蝌蚪| 黄色国产精品| 亚洲一区二区三区乱码aⅴ| 91久久精品一区二区三区| 亚洲欧美国产精品va在线观看| 久久亚洲电影| 国产精品亚洲视频| 亚洲欧洲日本在线| 欧美在线不卡| 亚洲一区在线观看免费观看电影高清 | 性做久久久久久| 欧美日韩欧美一区二区| 国色天香一区二区| 亚洲一区三区视频在线观看 | 欧美日韩一区二区三区高清| 狠狠爱综合网| 亚洲欧美国产另类| 亚洲最黄网站| 美国成人直播| 国产亚洲视频在线观看| 中文亚洲视频在线| 99re6这里只有精品视频在线观看| 久久精品国产91精品亚洲| 欧美日韩123| 一区二区亚洲精品| 午夜精品福利在线观看| 亚洲视频在线观看视频| 欧美国产综合视频| 黄色成人在线| 欧美一区二区视频免费观看 | 国产一区二区久久精品| 亚洲午夜精品在线| 在线视频你懂得一区二区三区| 老色鬼久久亚洲一区二区| 国产日韩一区二区三区在线播放| 99视频超级精品| 亚洲最新在线| 欧美国产成人精品| 在线播放不卡| 亚洲国产高清aⅴ视频| 久久久国产精彩视频美女艺术照福利 | 亚洲国产99| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品夜夜夜一区二区三区尤| 一本综合精品| 在线亚洲精品| 欧美日韩视频不卡| 亚洲精品欧美精品| 野花国产精品入口| 欧美久久久久久久久久| 91久久在线视频| 日韩天堂在线观看| 欧美激情视频免费观看| 最新高清无码专区| 一本色道久久加勒比88综合| 欧美精品一区二区三区视频| 亚洲国产精品久久久久秋霞影院| 久久精品一区蜜桃臀影院| 久久久人人人| 伊人春色精品| 亚洲欧洲精品一区二区三区波多野1战4| 久久人91精品久久久久久不卡 | 亚洲一区尤物| 欧美在线欧美在线| 国产午夜亚洲精品理论片色戒| 午夜精品久久久久久久99水蜜桃 | 午夜精品免费视频| 国产精品一区三区| 欧美一级在线视频| 久久久亚洲国产天美传媒修理工 | 亚洲伦理在线免费看| 一本到高清视频免费精品| 欧美日韩在线一区| 正在播放欧美视频| 欧美一区观看| 精品电影一区| 日韩一级欧洲| 国产精品国产三级国产普通话三级| 亚洲一区二区三区精品动漫| 久久精品亚洲乱码伦伦中文 | 午夜在线精品| 理论片一区二区在线| 91久久极品少妇xxxxⅹ软件| 中文亚洲欧美| 国产日韩欧美在线| 亚洲黄色在线视频| 欧美日韩国产一区二区三区地区 | 一区二区三区日韩精品| 国产精品久久久久久久浪潮网站 | 亚洲福利视频二区| 在线视频欧美精品| 国产美女诱惑一区二区| 亚洲国产91精品在线观看| 欧美日韩国产色视频| 亚洲欧美电影在线观看| 麻豆成人在线播放| 在线中文字幕日韩| 久久精品一区二区三区不卡牛牛| 国内外成人在线视频| 日韩一区二区福利| 国产精品色婷婷| 亚洲电影在线播放| 国产精品久久二区| 久久精品欧美日韩精品| 欧美日韩精品综合| 午夜影院日韩| 欧美日韩国产成人高清视频| 午夜国产精品视频| 欧美国产激情二区三区| 亚洲一区不卡| 欧美大成色www永久网站婷| 这里只有精品电影| 欧美超级免费视 在线| 亚洲欧美电影院| 欧美激情久久久久久| 亚洲女爱视频在线| 欧美国产一区二区在线观看 | 亚洲美女网站| 久久久久久久999精品视频| 日韩一区二区高清| 久久性色av| 亚洲综合99| 欧美激情亚洲精品| 欧美亚洲午夜视频在线观看| 欧美日韩高清免费| 亚洲国产成人久久综合| 国产精品久久久一区麻豆最新章节| 久久精品视频在线看| 国产精品福利在线观看网址| 亚洲国产欧美一区| 国产精品中文字幕欧美| 99国产精品久久久久久久| 黑丝一区二区| 久久se精品一区二区| 99在线热播精品免费99热|