国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ESXi性能計數(shù)的Nginx負(fù)載均衡算法研究

2020-03-10 06:30:24謎,李
關(guān)鍵詞:測試用例內(nèi)存頁面

潘 謎,李 旺

(1.集美大學(xué)理學(xué)院,福建 廈門 361021;2.集美大學(xué)計算機工程學(xué)院,福建 廈門 361021)

0 引言

Nginx[1]是一款開源的輕量級Web服務(wù),提供高性能的HTTP/HTTPS服務(wù)。Nginx因其具穩(wěn)定性、低資源消耗、高性能等特點,近年來廣受主流網(wǎng)絡(luò)服務(wù)商的青睞。百度、京東、淘寶、新浪、騰訊等均使用Nginx或其擴展作為Web服務(wù)。目前,對Nginx的研究主要集中在兩個方面:一個是模塊擴展(如淘寶的Tengine),另一個是反向代理的負(fù)載均衡及并發(fā)研究。關(guān)于Nginx負(fù)載均衡的研究,主要有兩個方向:一類是基于非反饋的均衡調(diào)度算法;另一類是基于反饋的均衡調(diào)度算法?;诜欠答伿降木庹{(diào)度算法主要有Nginx內(nèi)置的輪詢算法(round robin)、基于權(quán)重的調(diào)度算法(Weight)、IP散列調(diào)度算法(IP hash)、URL散列調(diào)度算法(URL hash)等,這些算法簡單、資源消耗少,但在一定條件下會導(dǎo)致調(diào)度嚴(yán)重失衡。基于反饋式的均衡調(diào)度算法是根據(jù)集群中各節(jié)點實際負(fù)載情況,決定下一步的調(diào)度策略,目前主要集中在集群各節(jié)點權(quán)重及實際負(fù)載的計算算法的改進,如Nginx的加權(quán)最小連接調(diào)度算法(weighted least-connection scheduling)[1]、動態(tài)反饋負(fù)載均衡算法[2]、動態(tài)自適應(yīng)負(fù)載均衡算法[3]、自適應(yīng)和預(yù)測的輪詢算法[4]、基于HAProxy的輪詢算法[5]、云環(huán)境下自組織感知體均衡算法[6]。一般算法中使用的評價參數(shù)包括連接數(shù)、CPU使用率、內(nèi)存使用率、I/O使用率、網(wǎng)絡(luò)使用率、請求響應(yīng)時間等[7-9],根據(jù)這些參數(shù)動態(tài)計算權(quán)重,用于決定下一次請求的分配策略。在一定程度上,這些改進后的算法能夠提高部分系統(tǒng)性能,但仍存在不足之處:1)評價參數(shù)需要由各節(jié)點計算并收集,這不可避免地增加了系統(tǒng)開銷,且異構(gòu)操作系統(tǒng)兼容性也會增加模塊升級及維護難度;2)不均衡任務(wù)分配策略中僅僅考慮異構(gòu)參數(shù)的同一化權(quán)重,在極端情況下,有可能導(dǎo)致瞬時節(jié)點瓶頸,甚至導(dǎo)致節(jié)點崩潰。

ESXi是VMware vSphere[10]的核心組件,提供虛擬化服務(wù),是專門為運行虛擬機、最大限度降低配置要求、簡化部署而設(shè)計的。它具有可靠、安全、簡化部署和配置、減少管理開銷等特性。ESXi提供的功能有鏡像生成器(image builder)、面向服務(wù)的無狀態(tài)防火墻、主機硬件全面監(jiān)控、虛擬機遷移(vMotion)、安全系統(tǒng)日志(secure syslog)、VMware vSphere Auto Deploy、擴展增強型Esxcli框架,以及新一代的虛擬機硬件[11]。ESXi擴展了SNMP V3支持,實現(xiàn)主機硬件資源的全面監(jiān)控,同時提供VMware API[12],支持多種編程環(huán)境,為主機管理、自動化部署與管理提供接口。ESXi性能計數(shù)是VMware API提供的功能之一,包括主機和虛擬機CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤等統(tǒng)計量。

針對上述問題,本文引入ESXi性能計數(shù)(ESXi performance counter,EPC),提出基于ESXi性能計數(shù)的均衡算法(dynamic weight based on ESXi performance counter,DWEPC),旨在使用近似實時的性能指標(biāo),預(yù)測并指導(dǎo)均衡分配策略,降低均衡模塊的復(fù)雜度及各節(jié)點的通信開銷,從而達(dá)到提升性能的目的。

1 負(fù)載均衡算法

Nginx反向代理主要由upstream模塊實現(xiàn)。它處理用戶請求的一般步驟如下:1)反向代理接受用戶的請求;2)調(diào)用負(fù)載均衡算法,獲取可調(diào)度的子節(jié)點索引值;3)將用戶請求轉(zhuǎn)發(fā)給步驟2)中返回的子節(jié)點,并等待響應(yīng);4)轉(zhuǎn)發(fā)子節(jié)點響應(yīng)給用戶。其中,負(fù)載均衡調(diào)度算法為反向代理提供當(dāng)前請求轉(zhuǎn)接的子節(jié)點索引,它的優(yōu)劣直接影響調(diào)度的性能。

1.1 權(quán)重更新算法

對于n個節(jié)點的Nginx集群,本研究選取CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤I/O四個指標(biāo)作為負(fù)載均衡算法調(diào)度指標(biāo)。對于節(jié)點i(i=1,2,…,n),其固有性能表示為ci=(ci1,ci2,ci3,ci4),代表物理資源的最大限值。則n個節(jié)點固有性能使用矩陣表示為:C=(cij)n×4。

由于任何反饋式的性能計數(shù)都是離散的(這是綜合考慮性能及信息采集的特點而定的),ESXi性能計數(shù)也是離散的??紤]最近m個采集的計數(shù)(當(dāng)采集數(shù)量超過m時,舍棄開頭的數(shù)據(jù),仍然只保留m個窗口大小),每次采集的計數(shù)表示為n行4列矩陣,

(1)

(2)

?Ψ/?wi=0,i=1,2,3,4。

(3)

解公式(3)所示的方程組得到向量W,即為當(dāng)前權(quán)重向量。

由于性能計數(shù)是每隔一段時間采集一次,因此權(quán)重向量也是每隔一段時間更新一次,與性能計數(shù)同步。

1.2 主調(diào)度算法

2)計算L=QW-Vm,L表示各節(jié)點剩余可分配次數(shù)向量;

3)在向量L中尋找最大元素對應(yīng)的行標(biāo)k(若多行同時最大,則隨機選取一行);

4)更新Vm的第k行元素的值:vkm=vkm+1。

輸出:k。

DWEPC算法的返回值表示待分配的子節(jié)點索引,反向代理根據(jù)該索引值選擇請求轉(zhuǎn)接的子節(jié)點。

1.3 均衡指標(biāo)

2 試驗結(jié)果

2.1 測試環(huán)境

測試環(huán)境搭建于VMware ESXi 6.5 Update 1平臺上,雙路Intel Xeon L5630,CPU主頻2.13 GHz(4核8線程),內(nèi)存40 GB。搭載Nginx的虛擬機節(jié)點配置有雙核CPU、2GB內(nèi)存、40GB硬盤(精簡置備)、VMXNET3網(wǎng)卡(虛擬萬兆網(wǎng)絡(luò)適配器)。

提供Nginx Web服務(wù)的主虛擬機節(jié)點安裝Nginx-1.17.1,其余每個虛擬機子節(jié)點安裝Nginx-1.17.1、Tomcat 9.0.21。

測試時,取n為5,即包含5個子節(jié)點,每個子節(jié)點中運行3個Tomcat實例,共15個Tomcat實例。其中,主節(jié)點worker進程數(shù)設(shè)置為8,子節(jié)點設(shè)置為4。

由于實際應(yīng)用時,CPU、網(wǎng)絡(luò)資源尤其關(guān)鍵,它的性能直接影響到其他幾個指標(biāo),因此本文設(shè)計的測試用例也主要針對CPU、網(wǎng)絡(luò)的調(diào)度。測試圖例T1的內(nèi)容為5個靜態(tài)頁面,大小分別為1 KB、16 KB、64 KB、512 KB、1 MB;測試用例T2的內(nèi)容為5個動態(tài)頁面,頁面中分別包含50k次加法運算,k=1,2,…,5。

為模擬現(xiàn)實操作,每個頁面請求之間間隔2 s。測試用例T1主要針對CPU和網(wǎng)絡(luò)負(fù)載,而T2則主要測試CPU負(fù)載均衡。

2.2 試驗結(jié)果及分析

選取Nginx最具代表性的Weight均衡策略,與本文提出的DWEPC算法(取m=20,采集時間間隔為3 s)對比,在5個子節(jié)點的環(huán)境下,分別運行T1和T2測試用例。性能測試終端使用Apache JMeter,虛擬用戶數(shù)(virtual user,簡寫VU)分別取100、500、1000、1500、2000,運行10 min,最終每個節(jié)點采集N次(N由運行時長和采集時間間隔確定)。

由于測試用例對于內(nèi)存需求趨于常量,且Nginx本身擁有頁面緩存模塊,使得磁盤訪問也基本可以忽略不計。本文僅列出CPU、網(wǎng)絡(luò)的測試結(jié)果,在不同虛擬用戶數(shù)(VU)下分別運行3次取平均值,所得的均和方差如表1所示(為了方便數(shù)值比較,這里取Nδ2(k)為均和方差)。

表1 不同VU下的均和方差

從表1可以看出,兩種算法在T1測試的CPU均衡、T2測試的網(wǎng)絡(luò)均衡調(diào)度上性能相當(dāng),但在T1的網(wǎng)絡(luò)均衡、T2的CPU均衡調(diào)度上,DWEPC總體上擁有更好的性能(見圖1、圖2)。

進一步,考察兩種算法在T2測試下,虛擬用戶數(shù)(VU)為1000時,某次運行時各節(jié)點CPU實際負(fù)載走勢,分別如圖3、圖4所示。圖3中,節(jié)點5的CPU負(fù)載幾乎都在100%附近,而其他幾個節(jié)點卻都在0~20%之間,即,節(jié)點5幾乎承擔(dān)了所有的CPU運算工作。圖4中,所有節(jié)點的CPU負(fù)載幾乎都在變化,沒有出現(xiàn)某一節(jié)點過載的情況,因此更能合理利用各節(jié)點資源,從而提升整體吞吐率。盡管圖4看起來雜亂無章,但那是因T2測試用例中的頁面極端不平衡導(dǎo)致的,如,第5個頁面是第1個頁面計算量的6.25×106倍。

由此可見,DWEPC算法能夠根據(jù)ESXi性能計數(shù),更均衡地實現(xiàn)各節(jié)點負(fù)載調(diào)度。

3 結(jié)論

本文提出了基于ESXi性能計數(shù)的Nginx負(fù)載均衡算法(DWEPC),與Weight算法相比,DWEPC具有更優(yōu)的節(jié)點均衡負(fù)載率,避免了節(jié)點過載的情況,從而提高系統(tǒng)性能。但,DWEC算法還不夠完善,其算法本質(zhì)上是基于均值預(yù)測的,對突發(fā)改變不夠靈敏。

猜你喜歡
測試用例內(nèi)存頁面
刷新生活的頁面
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
“春夏秋冬”的內(nèi)存
基于混合遺傳算法的回歸測試用例集最小化研究
基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
基于內(nèi)存的地理信息訪問技術(shù)
同一Word文檔 縱橫頁面并存
軟件回歸測試用例選取方法研究
淺析ASP.NET頁面導(dǎo)航技術(shù)
上網(wǎng)本為什么只有1GB?
同仁县| 乐陵市| 嵊州市| 曲周县| 深水埗区| 疏勒县| 华亭县| 菏泽市| 红桥区| 乳山市| 大丰市| 东阿县| 马关县| 安新县| 连州市| 前郭尔| 泗洪县| 阳春市| 海林市| 大邑县| 邳州市| 鄂温| 读书| 达孜县| 定边县| 凤冈县| 涟源市| 枞阳县| 朝阳县| 富川| 马关县| 章丘市| 广灵县| 八宿县| 上蔡县| 岚皋县| 沁阳市| 金平| 高尔夫| 安丘市| 庆元县|