摘? 要:當(dāng)前互聯(lián)網(wǎng)時(shí)代,絕大部分的網(wǎng)絡(luò)應(yīng)用都是基于客戶機(jī)/服務(wù)器模式,服務(wù)器的性能是整個(gè)網(wǎng)絡(luò)應(yīng)用系統(tǒng)的瓶頸。因此優(yōu)化服務(wù)器性能是非常重要。文章通過排隊(duì)論模型比較了相同服務(wù)器硬件條件下M/M/n模型和傳統(tǒng)的n個(gè)M/M/1模型的性能。最后通過實(shí)驗(yàn)驗(yàn)證了M/M/n排隊(duì)模型的優(yōu)勢,平均狀態(tài)下比傳統(tǒng)的模式提高22.5%的速度,在高負(fù)載的情況下比傳統(tǒng)的模式提高38.7%的速度。
關(guān)鍵詞:M/M/n;服務(wù)器;排隊(duì)論;性能優(yōu)化
中圖分類號(hào):TP393? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2021)23-0080-05
Optimizing Server Queue Performance Using the M/M/n Model
HE Honglei
(School of Information Engineering, Lianyungang Technical College, Lianyungang? 222000, China)
Abstract: In the current Internet era, most network applications are based on the client/server mode, and the performance of the server is the bottleneck of the entire network application system. Therefore, optimizing server performance is very important. This paper compares the performance of the M/M/n model and n traditional M/M/1 model under the same server hardware condition through the queuing theory model. Finally, the advantages of the M/M/n queuing model are verified by experiments. The average speed of the model is 22.5% higher than the traditional mode, and the speed of the model is 38.7% higher than the traditional mode under the high load condition.
Keywords: M/M/n; server; queuing theory; performance optimization
0? 引? 言
當(dāng)前的互聯(lián)網(wǎng)時(shí)代,人們的各種活動(dòng)都使用網(wǎng)絡(luò)應(yīng)用來實(shí)現(xiàn)。例如網(wǎng)絡(luò)購物、即時(shí)通信、社交活動(dòng)、游戲娛樂、電子政務(wù)、金融商務(wù)等等。這些網(wǎng)絡(luò)應(yīng)用系統(tǒng)基本上都是基于客戶機(jī)/服務(wù)器模式,用戶向服務(wù)器端發(fā)出請(qǐng)求,服務(wù)器響應(yīng)用戶的請(qǐng)求并提供服務(wù)。由于所有用戶的應(yīng)用都依賴服務(wù)器端的工作,所以一旦服務(wù)器性能出現(xiàn)問題,那么整個(gè)網(wǎng)絡(luò)應(yīng)用系統(tǒng)就會(huì)卡頓甚至崩潰。
所以,優(yōu)化服務(wù)器性能具有非常重要的現(xiàn)實(shí)意義。通常一個(gè)網(wǎng)絡(luò)應(yīng)用系統(tǒng)的服務(wù)器端可以有多臺(tái)服務(wù)器硬件構(gòu)成,例如目前常用的云計(jì)算模式就是由多臺(tái)服務(wù)器構(gòu)成服務(wù)器群集。如何規(guī)劃這些服務(wù)器的協(xié)同工作方式是優(yōu)化服務(wù)器性能的重點(diǎn)。通常情況下若干臺(tái)服務(wù)器會(huì)輪流執(zhí)行任務(wù)或者按照某種負(fù)載均衡的方式進(jìn)行工作,然而這并不能最大化的發(fā)揮服務(wù)器群集的優(yōu)勢。文章嘗試使用排隊(duì)論的技術(shù)優(yōu)化服務(wù)器群集的性能。并且在相同的硬件條件下,比較了M/M/n隊(duì)列模型和n個(gè)M/M/1隊(duì)列模型的優(yōu)缺點(diǎn)。然后給出了M/M/n隊(duì)列模型的實(shí)現(xiàn)方案,并進(jìn)行了實(shí)驗(yàn)測試。實(shí)驗(yàn)結(jié)果證明相同的服務(wù)器硬件條件下M/M/n隊(duì)列模型在高頻次、高負(fù)載的情況下具有非常大的性能優(yōu)勢。
1? M/M/n排隊(duì)模型優(yōu)化服務(wù)器性能
為了提高網(wǎng)絡(luò)應(yīng)用系統(tǒng)的性能,需要增加服務(wù)器端配置。如果將服務(wù)器的數(shù)量增加到n臺(tái),假設(shè)所有的服務(wù)器配置相同,那么如何讓這些服務(wù)器協(xié)同工作是提高服務(wù)端性能的一個(gè)關(guān)鍵技術(shù)。目前有一些服務(wù)器輪訓(xùn)技術(shù)或者服務(wù)器負(fù)載均衡技術(shù)在使用,但是都未能發(fā)揮出服務(wù)器群集的最大能力。使用排隊(duì)論的技術(shù)可以嘗試解決這個(gè)問題,排隊(duì)論是專門用于解決服務(wù)性能的模型,并且它有多種模型可以提供選擇,例如n臺(tái)服務(wù)器可以組成n個(gè)M/M/1隊(duì)列模型,也可以組成一個(gè)M/M/n隊(duì)列模型。選擇最優(yōu)的配置模型可以使得用戶獲得最快的響應(yīng)速度。下面比較兩種模型的用戶服務(wù)速度。
1.1? 單服務(wù)器隊(duì)列M/M/1模型
M/M/1模型如圖1所示。所有客戶端的請(qǐng)求都需要排隊(duì)等待服務(wù)器處理。服務(wù)器是一臺(tái),所有用戶請(qǐng)求排成一個(gè)隊(duì)列。系統(tǒng)中各個(gè)用戶的服務(wù)請(qǐng)求到達(dá)時(shí)間服從泊松分布,服務(wù)器端數(shù)量為1,各個(gè)用戶的服務(wù)處理的時(shí)間為負(fù)指數(shù)分布[1-4]。
定義1:用戶的請(qǐng)求率λ,表示單位時(shí)間內(nèi)到達(dá)的用戶請(qǐng)求次數(shù)。用戶的請(qǐng)求到達(dá)時(shí)間服從指數(shù)為的負(fù)指數(shù)分布[5],如式(1)所示:
(1)
定義2:服務(wù)器的計(jì)算機(jī)能力表示為E。
定義3:用戶端對(duì)服務(wù)器端請(qǐng)求產(chǎn)生的工作量表示為Gj,服務(wù)器處理每個(gè)請(qǐng)求而產(chǎn)生的工作大小是隨機(jī)的,這個(gè)工作量大小的概率服從泊松分布。
定義4:服務(wù)速率μ,表示單位時(shí)間內(nèi)服務(wù)器完成的用戶請(qǐng)求數(shù)量。服務(wù)器處理每個(gè)請(qǐng)求的需要的時(shí)間服從指數(shù)為的負(fù)指數(shù)分布[6,7]。由于不同的用戶請(qǐng)求需要的計(jì)算任務(wù)量不同,所以每個(gè)用戶請(qǐng)求的服務(wù)時(shí)間也不同,完成K個(gè)用戶請(qǐng)求的時(shí)間可以表示為。因此服務(wù)速率μ表示為式(2):
(2)
令ρ表示系統(tǒng)中至少有一個(gè)服務(wù)請(qǐng)求的概率,則ρ=λ/μ。
令Pn=P{N=n}為系統(tǒng)平衡狀態(tài)下隊(duì)長為N的概率分布。則Pn=P0ρn,而P0=1-ρ,所以:Pn=(1-ρ)ρn。
定義5:系統(tǒng)中的平均隊(duì)長表示為Ls,則。所以Ls如式(3)所示:
(3)
定義6:用戶的請(qǐng)求平均響應(yīng)時(shí)間表示為Response。Response=Ls/λ=。所以Response如式(4)所示:
(4)
由式(4)可知,這種排隊(duì)方式下隨著用戶請(qǐng)求率的增加用戶的平均等待時(shí)間會(huì)快速增加。另外平均工作量的增加也會(huì)延遲響應(yīng)時(shí)間。當(dāng)用戶請(qǐng)求率和平均工作量達(dá)到服務(wù)器的處理極限,系統(tǒng)就會(huì)卡頓。這個(gè)模型就是當(dāng)前大多數(shù)單服務(wù)器網(wǎng)絡(luò)應(yīng)用系統(tǒng)的實(shí)際工作方式。
如果要提升網(wǎng)絡(luò)應(yīng)用系統(tǒng)的可用性,就要增加服務(wù)器端的配置。假設(shè)服務(wù)器的臺(tái)數(shù)增加到n臺(tái),而且每臺(tái)服務(wù)器的配置完成相同,可以組成n個(gè)M/M/1隊(duì)列模型。在這個(gè)模型里所有的用戶請(qǐng)求排成n個(gè)隊(duì)列。如果取n=3,就是3個(gè)M/M/1隊(duì)列模型,如圖2所示。
如果系統(tǒng)的總請(qǐng)求到達(dá)率為λ,則每臺(tái)服務(wù)器的請(qǐng)求到達(dá)率為λ/3。所以用戶的請(qǐng)求平均響應(yīng)時(shí)間表示為式(5):
Response=? ? ? (5)
1.2? 多服務(wù)器隊(duì)列M/M/n模型
多服務(wù)器隊(duì)列M/M/n模型中有n個(gè)服務(wù)器提供服務(wù),所有客戶端的請(qǐng)求都需要排成一個(gè)隊(duì)列,等待服務(wù)器處理。系統(tǒng)中的n個(gè)服務(wù)器,每個(gè)服務(wù)器的處理請(qǐng)求的需要的時(shí)間服從參數(shù)為μ的負(fù)指數(shù)分布。系統(tǒng)中用戶的服務(wù)請(qǐng)求到達(dá)時(shí)間服從參數(shù)為λ的泊松分布。如果有3臺(tái)服務(wù)器,則n=3,構(gòu)成M/M/3模型,如圖3所示。
隊(duì)列中排隊(duì)請(qǐng)求的數(shù)量為0的概率表示為p0,服務(wù)請(qǐng)求隊(duì)列長度為k的概率表示為pk。ρ=λ/μ??梢垣@得式(6):
(6)
其中p0見式(7):
(7)
根據(jù)式(6)(7),當(dāng)服務(wù)請(qǐng)求隊(duì)列長度k大于等于服務(wù)器數(shù)量時(shí),新的用戶請(qǐng)求需要等待的概率表示為式(8):
(8)
將式(7)代入,可得式(9):
(9)
平穩(wěn)狀態(tài)下系統(tǒng)中的平均隊(duì)長表示為,則可表示為式(10):
(10)
用戶的請(qǐng)求平均響應(yīng)時(shí)間表示為Responsenn,因?yàn)镽esponsenn=,所以可得式(11):
(11)
1.3? M/M/n模型和M/M/1模型的比較。
令λ分別為0.1μ、0.2μ……,計(jì)算出3種模型的平均響應(yīng)時(shí)間,其對(duì)比關(guān)系如圖4所示。
其中t1表示單服務(wù)器M/M/1模型的平均響應(yīng)時(shí)間,當(dāng)(λ/μ)<1時(shí)有效。t2表示3臺(tái)服務(wù)器構(gòu)成3個(gè)M/M/1隊(duì)列工作時(shí)的平均響應(yīng)時(shí)間。t3表示3臺(tái)服務(wù)器構(gòu)成1個(gè)M/M/3隊(duì)列工作時(shí)的平均響應(yīng)時(shí)間。由圖可知M/M/3隊(duì)列模型性能最優(yōu)。
2? M/M/n系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)與性能分析
2.1? M/M/n模型系統(tǒng)設(shè)計(jì)
為了實(shí)現(xiàn)M/M/n排隊(duì)模型的網(wǎng)絡(luò)應(yīng)用系統(tǒng),系統(tǒng)的設(shè)計(jì)如圖5所示。
主要的工作原理為:
(1)3臺(tái)服務(wù)器上安裝網(wǎng)絡(luò)應(yīng)用系統(tǒng)。
(2)用戶登錄后,進(jìn)入默認(rèn)的框架網(wǎng)頁??蚣芫W(wǎng)頁選擇當(dāng)前最優(yōu)服務(wù)器并將其頁面載入ifraMe。
2.2? 性能分析
實(shí)驗(yàn)環(huán)境為4臺(tái)服務(wù)器,3臺(tái)客戶機(jī)。4臺(tái)服務(wù)器的配置是CPU為Intel Xeon E5-2680、內(nèi)存為16 GB、硬盤4 TB、操作系統(tǒng)使用Centos7。網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境的帶寬為100 M??蛻魴C(jī)的配置是CPU為Intel 酷睿 i7 3.6 GHz、內(nèi)存為8 GB、硬盤為1 TB,操作系統(tǒng)是Windows 10。
用戶端調(diào)用多個(gè)累加程序,按照泊松分布的時(shí)間間隔不同的頻率循環(huán)調(diào)用,調(diào)用的程序分別執(zhí)行50萬次、100萬次、200萬次、500萬次、800萬、2 000萬次、5 000萬次累加運(yùn)算,按照負(fù)指數(shù)分布的概率循環(huán)執(zhí)行。
服務(wù)器分別用3個(gè)M/M/1隊(duì)列和一個(gè)M/M/3隊(duì)列兩種方式工作。平均負(fù)載按照調(diào)用各個(gè)程序單獨(dú)運(yùn)行時(shí)間和其調(diào)用概率的加權(quán)值計(jì)算,實(shí)驗(yàn)結(jié)果如表1所示。
由表繪制折線圖,如圖6所示。其中T1(3-M/M/1)、T1(M/M/3)分別表示負(fù)載強(qiáng)度為20 ms時(shí)兩種排隊(duì)方式的響應(yīng)時(shí)間;其中T2(3-M/M/1)、T2(M/M/3)分別表示負(fù)載強(qiáng)度為12.5 ms時(shí)兩種排隊(duì)方式的響應(yīng)時(shí)間。由圖可知,在低請(qǐng)求頻率的情況下,兩種工作方式的響應(yīng)時(shí)間比較接近,甚至3個(gè)M/M/1隊(duì)列更快,這是因?yàn)楸疚腗/M/3隊(duì)列的系統(tǒng)需要同步文件和服務(wù)器性能測試,會(huì)消耗部分時(shí)間。隨著訪問頻率的提高,M/M/3隊(duì)列的優(yōu)勢逐漸顯現(xiàn)。而且在平均負(fù)載更高的情況下,其運(yùn)行優(yōu)勢更加明顯。例如請(qǐng)求頻率達(dá)到80次/秒時(shí),當(dāng)平均負(fù)載強(qiáng)度為12.5 ms時(shí),M/M/3隊(duì)列比3個(gè)M/M/1隊(duì)列快了23.4%;當(dāng)平均負(fù)載強(qiáng)度為20 Ms時(shí),M/M/3隊(duì)列比3個(gè)M/M/1隊(duì)列快了38.7%
3? 結(jié)? 論
文章研究網(wǎng)絡(luò)應(yīng)用系統(tǒng)的服務(wù)器端性能優(yōu)化技術(shù),通過比較幾種排隊(duì)模型,發(fā)現(xiàn)M/M/n模型搭建的網(wǎng)絡(luò)應(yīng)用系統(tǒng)服務(wù)器端,具有良好的性能。在同等的服務(wù)器硬件條件下,比傳統(tǒng)的服務(wù)器M/M/1模型具有較大的優(yōu)勢。在本文的實(shí)驗(yàn)環(huán)境下,M/M/n模型用戶等待時(shí)間平均縮短了22.5%。并且隨著用戶請(qǐng)求頻率和用戶請(qǐng)求負(fù)載的加大,M/M/n模型比傳統(tǒng)的M/M/1模型優(yōu)勢更加明顯。
圖6? 不同負(fù)載強(qiáng)度下的兩種排隊(duì)模型性能比較
參考文獻(xiàn):
[1] 王文博,葉慶衛(wèi),周宇,等.基于排隊(duì)論綜合指標(biāo)評(píng)估的動(dòng)態(tài)負(fù)載均衡算法 [J].電信科學(xué),2018,34(7):86-91.
[2] 郭子亭,張文力,陳明宇.基于M/M/1排隊(duì)模型的網(wǎng)絡(luò)服務(wù)尾延遲分析 [J].計(jì)算機(jī)科學(xué),2020,47(11):286-293.
[3] 李武強(qiáng),倪冠群,許曉晴.基于排隊(duì)系統(tǒng)的偏好差異性顧客服務(wù)策略分析 [J].運(yùn)籌與管理,2020,29(8):89-97.
[4] 吳登磊,趙寧,劉文奇.基于指標(biāo)比對(duì)串聯(lián)排隊(duì)系統(tǒng)平均排隊(duì)時(shí)間的近似方法 [J].南京航空航天大學(xué)學(xué)報(bào),2020,52(4):644-649.
[5] 鐘瑤,唐應(yīng)輝.具有兩類失效模式的D-策略M/G/1可修排隊(duì)系統(tǒng)分析 [J].運(yùn)籌學(xué)學(xué)報(bào),2020,24(1):40-56.
[6] 馬占友,郭閃閃,于向然,等.基于M/M/c休假排隊(duì)模型的虛擬機(jī)調(diào)度策略 [J].西北師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,56(1):21-26.
[7] 許洪華,徐馳,顧玲麗,等.基于在線排隊(duì)模型的信道優(yōu)化分配研究 [J].計(jì)算機(jī)應(yīng)用與軟件,2019,36(11):112-120.
作者簡介:何洪磊(1974—),男,漢族,江蘇連云港人,副教授,碩士,主要研究方向:軟件工程、人工智能。