













摘? 要:當前互聯網時代,絕大部分的網絡應用都是基于客戶機/服務器模式,服務器的性能是整個網絡應用系統的瓶頸。因此優化服務器性能是非常重要。文章通過排隊論模型比較了相同服務器硬件條件下M/M/n模型和傳統的n個M/M/1模型的性能。最后通過實驗驗證了M/M/n排隊模型的優勢,平均狀態下比傳統的模式提高22.5%的速度,在高負載的情況下比傳統的模式提高38.7%的速度。
關鍵詞:M/M/n;服務器;排隊論;性能優化
中圖分類號:TP393? ? ? ? ?文獻標識碼:A文章編號: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? 引? 言
當前的互聯網時代,人們的各種活動都使用網絡應用來實現。例如網絡購物、即時通信、社交活動、游戲娛樂、電子政務、金融商務等等。這些網絡應用系統基本上都是基于客戶機/服務器模式,用戶向服務器端發出請求,服務器響應用戶的請求并提供服務。由于所有用戶的應用都依賴服務器端的工作,所以一旦服務器性能出現問題,那么整個網絡應用系統就會卡頓甚至崩潰。
所以,優化服務器性能具有非常重要的現實意義。通常一個網絡應用系統的服務器端可以有多臺服務器硬件構成,例如目前常用的云計算模式就是由多臺服務器構成服務器群集。如何規劃這些服務器的協同工作方式是優化服務器性能的重點。通常情況下若干臺服務器會輪流執行任務或者按照某種負載均衡的方式進行工作,然而這并不能最大化的發揮服務器群集的優勢。文章嘗試使用排隊論的技術優化服務器群集的性能。并且在相同的硬件條件下,比較了M/M/n隊列模型和n個M/M/1隊列模型的優缺點。然后給出了M/M/n隊列模型的實現方案,并進行了實驗測試。實驗結果證明相同的服務器硬件條件下M/M/n隊列模型在高頻次、高負載的情況下具有非常大的性能優勢。
1? M/M/n排隊模型優化服務器性能
為了提高網絡應用系統的性能,需要增加服務器端配置。如果將服務器的數量增加到n臺,假設所有的服務器配置相同,那么如何讓這些服務器協同工作是提高服務端性能的一個關鍵技術。目前有一些服務器輪訓技術或者服務器負載均衡技術在使用,但是都未能發揮出服務器群集的最大能力。使用排隊論的技術可以嘗試解決這個問題,排隊論是專門用于解決服務性能的模型,并且它有多種模型可以提供選擇,例如n臺服務器可以組成n個M/M/1隊列模型,也可以組成一個M/M/n隊列模型。選擇最優的配置模型可以使得用戶獲得最快的響應速度。下面比較兩種模型的用戶服務速度。
1.1? 單服務器隊列M/M/1模型
M/M/1模型如圖1所示。所有客戶端的請求都需要排隊等待服務器處理。服務器是一臺,所有用戶請求排成一個隊列。系統中各個用戶的服務請求到達時間服從泊松分布,服務器端數量為1,各個用戶的服務處理的時間為負指數分布[1-4]。
定義1:用戶的請求率λ,表示單位時間內到達的用戶請求次數。用戶的請求到達時間服從指數為的負指數分布[5],如式(1)所示:
(1)
定義2:服務器的計算機能力表示為E。
定義3:用戶端對服務器端請求產生的工作量表示為Gj,服務器處理每個請求而產生的工作大小是隨機的,這個工作量大小的概率服從泊松分布。
定義4:服務速率μ,表示單位時間內服務器完成的用戶請求數量。服務器處理每個請求的需要的時間服從指數為的負指數分布[6,7]。由于不同的用戶請求需要的計算任務量不同,所以每個用戶請求的服務時間也不同,完成K個用戶請求的時間可以表示為。因此服務速率μ表示為式(2):
(2)
令ρ表示系統中至少有一個服務請求的概率,則ρ=λ/μ。
令Pn=P{N=n}為系統平衡狀態下隊長為N的概率分布。則Pn=P0ρn,而P0=1-ρ,所以:Pn=(1-ρ)ρn。
定義5:系統中的平均隊長表示為Ls,則。所以Ls如式(3)所示:
(3)
定義6:用戶的請求平均響應時間表示為Response。Response=Ls/λ=。所以Response如式(4)所示:
(4)
由式(4)可知,這種排隊方式下隨著用戶請求率的增加用戶的平均等待時間會快速增加。另外平均工作量的增加也會延遲響應時間。當用戶請求率和平均工作量達到服務器的處理極限,系統就會卡頓。這個模型就是當前大多數單服務器網絡應用系統的實際工作方式。
如果要提升網絡應用系統的可用性,就要增加服務器端的配置。假設服務器的臺數增加到n臺,而且每臺服務器的配置完成相同,可以組成n個M/M/1隊列模型。在這個模型里所有的用戶請求排成n個隊列。如果取n=3,就是3個M/M/1隊列模型,如圖2所示。
如果系統的總請求到達率為λ,則每臺服務器的請求到達率為λ/3。所以用戶的請求平均響應時間表示為式(5):
Response=? ? ? (5)
1.2? 多服務器隊列M/M/n模型
多服務器隊列M/M/n模型中有n個服務器提供服務,所有客戶端的請求都需要排成一個隊列,等待服務器處理。系統中的n個服務器,每個服務器的處理請求的需要的時間服從參數為μ的負指數分布。系統中用戶的服務請求到達時間服從參數為λ的泊松分布。如果有3臺服務器,則n=3,構成M/M/3模型,如圖3所示。
隊列中排隊請求的數量為0的概率表示為p0,服務請求隊列長度為k的概率表示為pk。ρ=λ/μ。可以獲得式(6):
(6)
其中p0見式(7):
(7)
根據式(6)(7),當服務請求隊列長度k大于等于服務器數量時,新的用戶請求需要等待的概率表示為式(8):
(8)
將式(7)代入,可得式(9):
(9)
平穩狀態下系統中的平均隊長表示為,則可表示為式(10):
(10)
用戶的請求平均響應時間表示為Responsenn,因為Responsenn=,所以可得式(11):
(11)
1.3? M/M/n模型和M/M/1模型的比較。
令λ分別為0.1μ、0.2μ……,計算出3種模型的平均響應時間,其對比關系如圖4所示。
其中t1表示單服務器M/M/1模型的平均響應時間,當(λ/μ)<1時有效。t2表示3臺服務器構成3個M/M/1隊列工作時的平均響應時間。t3表示3臺服務器構成1個M/M/3隊列工作時的平均響應時間。由圖可知M/M/3隊列模型性能最優。
2? M/M/n系統的設計實現與性能分析
2.1? M/M/n模型系統設計
為了實現M/M/n排隊模型的網絡應用系統,系統的設計如圖5所示。
主要的工作原理為:
(1)3臺服務器上安裝網絡應用系統。
(2)用戶登錄后,進入默認的框架網頁。框架網頁選擇當前最優服務器并將其頁面載入ifraMe。
2.2? 性能分析
實驗環境為4臺服務器,3臺客戶機。4臺服務器的配置是CPU為Intel Xeon E5-2680、內存為16 GB、硬盤4 TB、操作系統使用Centos7。網絡實驗環境的帶寬為100 M。客戶機的配置是CPU為Intel 酷睿 i7 3.6 GHz、內存為8 GB、硬盤為1 TB,操作系統是Windows 10。
用戶端調用多個累加程序,按照泊松分布的時間間隔不同的頻率循環調用,調用的程序分別執行50萬次、100萬次、200萬次、500萬次、800萬、2 000萬次、5 000萬次累加運算,按照負指數分布的概率循環執行。
服務器分別用3個M/M/1隊列和一個M/M/3隊列兩種方式工作。平均負載按照調用各個程序單獨運行時間和其調用概率的加權值計算,實驗結果如表1所示。
由表繪制折線圖,如圖6所示。其中T1(3-M/M/1)、T1(M/M/3)分別表示負載強度為20 ms時兩種排隊方式的響應時間;其中T2(3-M/M/1)、T2(M/M/3)分別表示負載強度為12.5 ms時兩種排隊方式的響應時間。由圖可知,在低請求頻率的情況下,兩種工作方式的響應時間比較接近,甚至3個M/M/1隊列更快,這是因為本文M/M/3隊列的系統需要同步文件和服務器性能測試,會消耗部分時間。隨著訪問頻率的提高,M/M/3隊列的優勢逐漸顯現。而且在平均負載更高的情況下,其運行優勢更加明顯。例如請求頻率達到80次/秒時,當平均負載強度為12.5 ms時,M/M/3隊列比3個M/M/1隊列快了23.4%;當平均負載強度為20 Ms時,M/M/3隊列比3個M/M/1隊列快了38.7%
3? 結? 論
文章研究網絡應用系統的服務器端性能優化技術,通過比較幾種排隊模型,發現M/M/n模型搭建的網絡應用系統服務器端,具有良好的性能。在同等的服務器硬件條件下,比傳統的服務器M/M/1模型具有較大的優勢。在本文的實驗環境下,M/M/n模型用戶等待時間平均縮短了22.5%。并且隨著用戶請求頻率和用戶請求負載的加大,M/M/n模型比傳統的M/M/1模型優勢更加明顯。
圖6? 不同負載強度下的兩種排隊模型性能比較
參考文獻:
[1] 王文博,葉慶衛,周宇,等.基于排隊論綜合指標評估的動態負載均衡算法 [J].電信科學,2018,34(7):86-91.
[2] 郭子亭,張文力,陳明宇.基于M/M/1排隊模型的網絡服務尾延遲分析 [J].計算機科學,2020,47(11):286-293.
[3] 李武強,倪冠群,許曉晴.基于排隊系統的偏好差異性顧客服務策略分析 [J].運籌與管理,2020,29(8):89-97.
[4] 吳登磊,趙寧,劉文奇.基于指標比對串聯排隊系統平均排隊時間的近似方法 [J].南京航空航天大學學報,2020,52(4):644-649.
[5] 鐘瑤,唐應輝.具有兩類失效模式的D-策略M/G/1可修排隊系統分析 [J].運籌學學報,2020,24(1):40-56.
[6] 馬占友,郭閃閃,于向然,等.基于M/M/c休假排隊模型的虛擬機調度策略 [J].西北師范大學學報(自然科學版),2020,56(1):21-26.
[7] 許洪華,徐馳,顧玲麗,等.基于在線排隊模型的信道優化分配研究 [J].計算機應用與軟件,2019,36(11):112-120.
作者簡介:何洪磊(1974—),男,漢族,江蘇連云港人,副教授,碩士,主要研究方向:軟件工程、人工智能。