APP下载

使用M/M/n模型优化服务器队列性能

2021-05-07何洪磊

现代信息科技 2021年23期
关键词:排队论性能优化服务器

摘  要:当前互联网时代,绝大部分的网络应用都是基于客户机/服务器模式,服务器的性能是整个网络应用系统的瓶颈。因此优化服务器性能是非常重要。文章通过排队论模型比较了相同服务器硬件条件下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—),男,汉族,江苏连云港人,副教授,硕士,主要研究方向:软件工程、人工智能。

猜你喜欢

排队论性能优化服务器
2018年全球服务器市场将保持温和增长
SQL Server数据库性能优化的几点分析
Web应用的前端性能优化
校园智能快递柜服务系统的优化研究
排队论在医院门诊收费管理中的应用
Oracle数据库性能调整与优化分析
基于排队论模型分析交通事故对城市道路通行能力的影响
用独立服务器的站长注意了
定位中高端 惠普8路服务器重装上阵