摘 要:隨著數據庫技術的不斷發展,在各行各業中數據庫都得到了應用,但當下的技術難以滿足人們對數據精準度的要求。在當今的企業集群中,Linux虛擬服務器(LVS)作為一種負載均衡技術,已經得到了廣泛的應用,但由于現實條件的約束,Linux虛擬服務器僅僅對Web服務器集群負載均衡性能展開了研究,忽視了Linux虛擬服務器在特定的情況下,可以實現與數據庫集群的對接,本文基于當前的研究現狀,以負載均衡算法的數據庫集群為對象,運用HP LoadRunner來對其進行負載均衡性能的實驗,構建Linux虛擬服務器下數據庫集群負載性能測試的具體方案。
關鍵詞:Linux虛擬服務器;數據庫集群;負載均衡;性能測試分析
中圖分類號:TP311.13 文獻標識碼:A 文章編號:2096-4706(2018)03-0075-03
Load balancing Performance Test and Analysis of Database Cluster Based on LVS
ZHANG Xuhong
(Ningxia Polytechnic,Yinchuan 750004,China)
Abstract:With the continuous development of database technology,database have been applied in all walks of life,but the technology is difficult to meet the requirements of the data precision,in today's enterprise cluster,the Linux virtual server(LVS)as a load balancing technology,has been widely used,but due to the real conditions of constraint,the Linux virtual server only on the properties of the Web server cluster load balancing for research,Ignored the Linux virtual server in certain cases,to achieve docking with the database cluster,this article is based on the current research status,to load balance algorithm for object,database cluster use HP LoadRunner to carry on the experiment,the performance of load balancing built under the Linux virtual server database cluster load performance testing.
Keywords:Linux virtual server;database cluster;load balancing;performance test analysis
0 引 言
大數據時代的到來為人們的生產生活帶來了極大的便利,但隨著越來越多的數據產生,傳統的數據庫難以滿足人們日益多樣化的需求。面對這一現狀,對高性能的技術的需求顯得十分迫切,而數據庫集群的發展使這一問題得到了改善,作為數據庫集群中的中心技術,提高集群負載均衡性能是使數據庫得到根本優化的關鍵。基于Linux虛擬服務器支持TPC請求做負載均衡虛擬IP,因此,可以利用Linux虛擬服務器架構來對數據庫集群做負載均衡,從目前的研究現狀來看,LVS的算法性能主要是以Web為基礎的,缺少對數據庫集群的負債均衡算法做出分析,為了解決這一問題,本文將通過設計數據庫集群負載均衡性能測試,來探尋數據庫集群所對應的最高效的負載均衡算法。
1 Linux虛擬服務器概述
Linux虛擬服務器以提高服務器群組的功能為目標,如今已經在網絡服務器集群的負載調度過程中得到實踐,與其他服務相比,Linux虛擬服務器同時具備成本較低、伸縮性能好、配置簡便等優點,僅僅通過簡單的安裝即可實現多臺服務器的連接,使其成為一個集群。而科學技術的發展同時增強了負載均衡的需求,使Linux虛擬服務器得到進一步推廣,淘寶網等知名網站也都應用了Linux虛擬服務器集群系統。
Linux虛擬服務器能夠有效解決內容分發的負載調度,并且已經在系統中被應用,進一步將服務器群組融合,通過其中的一臺服務器,使分布在網絡中的服務器與用戶相連,當用戶發出請求時,其信息會首先被傳遞到負載調度器上,以此作為媒介,將用戶的請求分散給其他的服務器,使用戶無需進行復雜的操作,便可得到所要獲取的數據信息。在Linux虛擬服務器集群當中,需要負載均衡器、服務器池以及共享存儲三部分共同配合,首先負載均衡器作為整個系統的開端,當使用者的請求發出時,會被傳送到一臺服務器上,經過負載調度器進行二次傳遞,發回的信息經過負載調度器的處理,保障給使用者的最終結果出自同一個IP;處理用戶請求的真實服務器從屬于服務器池,根據需求對服務器池中的服務器數量進行調整;而共享服務則是為真實服務器的數據提供保障,降低由于系統更新產生損失的可能性。
2 數據庫集群系統和負載均衡技術
2.1 數據庫集群系統
并行系統是由一組計算機的連接而形成的系統,通過集群管理的相關軟件,使計算機形成一個整體,來實現對外部的服務功能,集群可以增加服務器的數量,而用戶并不能發現,將集群系統進行劃分,可以分為高性能集群、高可用集群、負載均衡集群以及網絡計算集群。數據庫的集群同樣有多種架設模式,以主機節點能否實現共享數據存儲為依據,可以劃分為共享存儲結構和無共享存儲結構。共享存儲結構中,主機具有單獨的處理器,但又使用同一個存儲系統,以此保障了存儲系統的數據完整性,面對用戶的請求,節點必須從存儲系統中獲取數據,再存儲到節點內存中,共享存儲結構具有負載均衡性強的優點,但是其費用較高,程序復雜。無共享存儲結構中,服務器不僅有單獨的處理器,而且存儲器也是單獨的,各個節點之間保持相對的獨立性,這種獨立性極大地提高了其并發處理能力。
2.2 負載均衡技術
2.2.1 負載均衡技術的概念
負載均衡技術將多臺服務器集合成一個整體,并且在這個系統內保持各個服務器處于獨立的狀態,使得服務器節點能夠根據使用者的請求來做出反應,并及時處理,給使用者以信息反饋,但是當系統的處理量沒有達到一定數量時,這種效能難以體現出來。不過,隨著用戶請求數量的增加,當一臺服務器不能處理時,負載均衡便會發揮其性能,對大量的數據進行分析處理,根據使用者的請求發送到節點上,提高了設備的使用效率。
2.2.2 負載均衡技術分類
負載均衡技術從實現的方法劃分,可以分為軟件實現方式和硬件實現方式。軟件負載均衡是根據使用者的請求來進行均衡調度,操作簡單,在網絡服務器集群中應用較多,但由于其運行需要一定的硬件支持,會加大對資源的占用率,硬件負載均衡是以硬件來實現負載調度,不會受到軟件的約束,但必須有相應的配套設備予以支持,由此會提高其成本。
按照網絡的物理結構劃分,可以分為全局負載均衡和本地負載均衡。本地負載均衡主要是解決本地區的流量負荷問題,將用戶的請求分發到各個服務器當中,本地負載均衡模式具有價格低、類型多的特點,但是需要軟件來運行,在此過程中很難避免硬件的消耗。全局負載均衡可以實現對不同地區的服務器的控制,其可靠性和服務的質量都相對較高,因此,在大型的網站服務中,全局負載均衡有很高的應用價值。
按照負載均衡網絡層次可以劃分為第七層負載均衡、第四層負載均衡以及第二層負載均衡。第七層負載均衡應用在Web服務器集群中,來分析HTTP的報頭信息,以此實現調度;第四層負載均衡是在傳輸層實行的負載均衡,在這種負載均衡模式下,首先用戶請求的地址將會被任務調度器修改,根據調度的原則,進而被發送到服務器節點上;第二層負載均衡則是在數據鏈路層當中,將處在同一條邏輯鏈路的數據發送給其相應的物理鏈路,從而加快其發送的效率。
3 測試原理
對于Linux虛擬服務器負載均衡架構,有三種搭建模式,一是VS/TUN模式,用IP通道來實現對使用者請求的均衡分發,二是VS/NAT模式,考慮到在系統中可能出現通訊壓力,用轉換網絡地址的方式將請求進行分發,三是VS/DR方式,將最終的結果發送給使用者,具有較快的返回能力。在當今的科學技術推動下,Linux虛擬服務器可以采用最小連接調度算法、目標地址散列調度等八種算法。
在My SQL Cluster中,經常采用NDB存儲引擎來將數據集群中的數據節點進行整合,采用復制的方式達到數據之間的同步性,另外,在HP Loadrunner中設置IP Wizard,使用者可以根據自己的需求來對IP地址進行調整,達到以一臺主機來操作多個IP地址的效果,將使用變量參數化,保障使用者之間的差異可以得到檢驗。對負載測試生成節點進行設置,通過增加樣本數量,來對結果進行分析,基于本文的研究目的,是根據數據分發狀況監測LVS負載均衡算法的性能,來判斷此算法的效果好壞,因此采用并發測試來進行試驗,基于較少誤差的考慮,采用VS/DR的方式進行搭建。
4 測試實驗
4.1 實驗配置
完整的My SQL數據庫集群需要具備管理節點、數據節點以及SQL節點,在本次的測試中將把三種節點運用到集群當中,來提高數據庫的完整度,把數據節點和SQL節點與主機作為真實的服務器,主機的IP分別為:
LVS均衡器IP:192.168.1.141
負載均衡IP:192.168.1.250
DB Node 01 IP:192.168.1.142
DB Node 02 IP:192.168.1.143
DB Node 03 IP:192.168.1.144
為了提高數據庫節點的性能在節點的RAM中裝置512MB、1024MB、2048MB,并使用高速路由器進行連接,采用My SQL數據庫集群搭建的方式和LVS的配置原理,在管理節點中以ipvsadm-l命令來查詢內配置。
4.2 LoadRunner配置
將用戶的信息存儲到HP LoadRunner文件中,以lr_eval_string()函數來實現參數文件的調用,將使用者的循環調用方式調整為Unique-Once模式,在此基礎上導入文件,編輯使用者的action腳本。為了使使用者之間保持相對的獨立性,需要借助IP spoof功能,通過IP Wizard將IP地址發送到本地網卡中,啟動專家模式和IP欺騙功能,綁定虛擬用戶的IP地址。
4.3 實證過程
(1)將用戶的信息進行執行授權。
(2)創建共享分享式數據表,并指向SQL語言。
(3)為了減少實證過程中MySQL數據庫最大連接數受限帶來的影響,將連接數值進行調整。
(4)設定數據庫的連接超時使用戶能夠有效進行訪問。
(5)同時在計算機上運行虛擬用戶的腳本,執行SQL語言,測量用戶數和所需時間,在負載均衡器上對不同的算法進行反復的測試。
5 實驗結果的分析
通過以上對輪詢調度算法(rr)、加權輪詢調度算法(wrr)、最小連接調度算法(lc)、加權最小連接調度算法(wlc)、源地址散列調度算法(sh)、目的地址散列調度算法(dh)六種算法的實驗,對所產生的數據進行劃分,由于數據較為分散,本次實驗將以三十秒為間隔,分別選取十個間隔點,去除其中的干擾因素,通過計算響應所需時間的平均值,根據AVEres_time=(∑10n=1aven)/10這一公式,得出了以下結果,如表1所示。
根據res Time=conn Time+exe Time這一公式,可知,當數據庫集群的節點同一集群中,conn Time可以被看作一個不變量,節點間所需的通訊時間比較小,而用戶的響應時間會隨著數據處理時間的增加而增加,兩者呈正相關關系。在不考慮通訊對于時間的影響的情況下,SQL請求所需的時間會直接在用戶的響應時間中得到體現,對于非對稱集群環境而言,集群中節點性能不同,最小接連算法難以實現調度節點的功能,因此導致其不能很好地發揮集群的功能,而加權最小連接調度則可以根據相關的硬件來進行調度。但是加權最小連接調度適用于用戶數量較多的情況,當數量不足時,權值的計算則會增加反應時間,導致執行效率低下。
參考文獻:
[1] 王超.基于LVS數據庫集群負載均衡算法的研究 [D].曲阜:曲阜師范大學,2017.
[2] 丁敏.云環境下高性能數據庫集群關鍵技術研究 [D].成都:電子科技大學,2017.
[3] 高攀.基于LVS的負載均衡改進算法在DRC集群中的應用 [D].成都:成都理工大學,2016.
[4] 欒羿魯.集群WEB應用下的負載均衡技術研究與應用 [D].天津:天津大學,2014.
[5] 朱紅.基于MySQL集群實現的高性能數據庫架構設計 [D].上海:上海交通大學,2014.
[6] 宣振國.基于Mysql的數據庫集群設計與實現 [D].北京:北京郵電大學,2013.
作者簡介:張旭紅(1972.08-),女,漢族,寧夏人,教授,本科。研究方向:計算機網絡。