您的位置:首页 > 其它

基于排队的流量控制

2008-02-15 22:49 204 查看

前言

对于应用于电信企业的计算机业务管理系统、业务控制系统,不仅要达到电信级的服务能力,而且还要达到电信级的可靠性。电信级系统可靠性的一个重要特征是流量控制,即当系统接受到的服务请求超过系统设计容量时,需要实行流量限制,在保持关键服务质量的前提下降低非关键服务接通率,以减弱系统各设备的负载线性增加趋势,保证系统的平稳运行,见图1.1。

图1.1、业务量-负荷控制曲线

本文通过引入排队论的思想,介绍如何通过排队论方法实现流量控制。

2 背景知识

2.1 排队系统

在我们的现实生活中,处处会碰到排队现象。比如银行取款、餐厅就餐、计算机服务等等,只要存在请求、服务,就会有排队过程。排队论就是一门研究排队现象的运筹学知识。
排队论研究内容包括:
(1) 数量指标:队长、等待时间和逗留时间的分布、忙期和闲期的分布、服务设备利用率、顾客损失率等;
(2) 排队系统优化问题:系统最优设计问题和动态控制问题。
研究排队现象的目的是:通过对排队系统中概率规律的研究,使系统达到最优设计和最优控制,以最小费用实现系统的最大效益。

排队系统又称随机服务系统,有以下三个特征:
(1) 有请求服务的人或物;
(2) 有为顾客服务的人或物;
(3) 顾客到达时间与接受服务时间是随机的。

一个排队系统的基本结构如图2.1。

图2.1、排队系统的基本结构

(1) 请求;
(2) 达到过程:
a. 顾客总体数或顾客源数:有限或无限
b. 顾客的到达类型:单个或成批
c. 顾客流的概率分布(泊松流、定长、爱尔朗分布等)
(3) 排队结构:
a. 单一队列、多个队列;
b. 有限队长、无限队长;
(4) 排队规则:
a. 损失制系统:服务台被占用时新到的顾客将离开
b. 等待制系统:FCFS、LCFS……
c. 混合制系统:损失制与等待制的混合
(5) 服务过程:
a. 服务台数量及布置形式(单/多服务台,串、并列或结合)
b. 某一时刻接受服务的顾客数(每服务台每次服务顾客数)
c. 服务时间分布(负指数、定长、爱尔朗分布等)

下面是排队系统中常用到的记号:
n –– 系统中的顾客数
l ––平均到达率,即单位时间内平均到达的顾客数
m –– 平均服务率,即单位时间内服务完毕的顾客数
Sn(t) ––时刻t系统中有n个顾客
Pn(t) –– 时刻t系统状态Sn(t) 的概率
C –– 服务台的个数
M –– 顾客相继到达的时间间隔服从负指数分布
D –– 顾客相继到达的时间间隔服从定长分布
Ek –– 顾客相继到达的时间间隔服从k阶Erlang分布

一个排队系统的特征可以用六个参数表示,形式为:
[A/B/C]:[d/e/f]

其中
A––顾客到达的概率分布,可取M、D、Ek等;
B––服务时间的概率分布,可取M、D、Ek等;
C––服务台个数,取正整数;
d––排队系统的最大容量,可取正整数或∞;
e––顾客源的最大容量,可取正整数或∞;
f––排队规则,可取FCFS、LCFS等。

2.2 Poisson分布

顾客到达和服务的时间分布是随机的,比较常用的是Poisson流(泊松流、Poisson过程),满足以下四个条件的输入流称为Poisson流(Poisson过程):
1、 平稳性:在时间区间[t, t+Δt]内到达k个顾客的概率与t无关,只与Δt有关。记为Pk(Δt)。
2、 无后效性:不相交的时间区间内到达的顾客数互相独立。
3、 普通性:设在[t, t+Δt]内到达多于一个顾客的概率为q(Δt),则:
q(Δt)=σ(Δt)
即:

4、
有限性:任意有限个区间内到达有限个顾客的概率等于一。即

对于一个参数为λ的Poisson流,在[0,t]内到达k个顾客的概率为

即服从以λ为参数的Poisson分布

图2.2、参数λ的Poisson分布

在排队系统中,如果单位时间内顾客到达数服从以λ为参数的Poisson分布,则顾客相继到达的时间间隔服从以λ为参数的负指数分布。

2.3 排队系统绩效度量

排队系统绩效度量值包括:
(1) 系统总的平均顾客数L
(2) 平均等待顾客个数Lq
(3) 包括服务的平均等待时间W
(4) 平均顾客等待时间Wq
(5) 系统利用率r
(6) 系统中恰好有 n 个顾客的概率Pn
(7) 有效到达率λe
(8) 有效离去率μe
(9) 此外还有:忙、空的概率等。

2.4 [M/M/c]:[N/∞/FCFS]模型

[M/M/c]:[N/∞/FCFS]排队模型如图2.3。

图2.3、[M/M/c]:[N/∞/FCFS]排队模型

设系统容量为N(N≥c),当系统中的顾数n<N时,到达的顾客就进入系统;当n=N时,到达的顾客就被拒绝。设顾客到达的速率为λ,每个服务台服务的速率为μ,服务能力ρ=λ/cμ。由于系统不会无限止地接纳顾客,对ρ不必加以限制。
状态概率如下:

运行指标如下:
(1) 平均等待顾客个数Lq

(2) 系统总的平均顾客数L

(3) 包括服务的平均等待时间W

(4) 平均顾客等待时间Wq

(5) 损失率即为n=N时的概率PN,接通率即为(1-PN)。

3 排队流量控制模型

只要存在“Client/Server”的环境,就可以采用排队模型进行分析。在一个基于Client/Server模型的计算机应用系统中,非常适合采用排队论M/M/c:N/∞/FCFS模型来进行流量控制,当Client请求超过Server设计容量时,能避免Server的负荷恶性增长,确保系统能提供设计容量的服务。

3.1 排队服务模型

Client/Server模型中(如图3.1),针对特定应用,Server具备一定的服务能力。服务能力表现为最大并发处理数c、每个服务的平均服务时长t(或服务速率μ=1/t)、业务处理最大流量M(为保证系统稳定性,在此最大流量下设备负荷不超过满负荷的70%),这几个参数之间的关系为:

M = c μ = c / t

图3.1、Client/Server结构图

只要我们在Server端限定最大并发处理数c及平均服务时长t,我们就可以限制业务流量,保证Server的平稳运行。对此模型,当业务请求量超过c时,Server将拒绝服务,此时业务接通率下降。

为提高大业务量下的接通率,可对Client/Server模型进行扩展,引入排队队列,如图3.2。

图3.2、具备排队队列的Client/Server结构图

这样,当业务请求书超过最大并发处理数c时,可将业务请求放入排队队列中进行排队,因排队过程一般不消耗Server负荷,可以确保Server的平稳运行。
排队队列长度有以下几种情况:
(1) 模式一:排队队列长度为0。模型退化为<图3.1、Client/Server结构图>;
(2) 模式二:排队队列为有限长度([M/M/c]:[N/∞/FCFS]模型)。在该环境下,当队列满时,Server将拒绝新的业务请求,接通率下降。
(3) 模式三:排队队列为无限长度([M/M/c]:[∞/∞/FCFS]模型)。在该环境下,可使接通率不降低,但当业务请求量持续大于业务服务能力时,Server的队列长度将不断增长,内存消耗增加,将引起Server不稳定。

排队方式有多种情况,比较常用的是下面两种情况:
(1) FCFS:先进先服务;
(2) LCFS:后进先服务;

在现实的IT系统中,我们一般采用模式二。Client的请求服从Poisson分布,近似认为服务能力满足负指数分布,则完全可以通过排队论[M/M/c]:[N/∞/FCFS]模型计算出服务能力、业务请求流量、排队队列与接通率、平均排队时间、平均逗留时间的关系。则:
(1) 在某种业务请求流量下,为获得需要的接通率,我们可以计算出合适的队列长度。
(2) 在大业务量情况下,如果限定逗留时长,可计算出一个合适的排队队列长度,当排队长度超过该值时,业务请求再继续排队就没有意义。(比如设定超时退出机制的环境)
(3) 对于关键业务请求,可以通过增大排队队列长度来提高接通率。

3.2 传输模型

在广域网上的Client/Server模型,不同于局域网系统的地方是网络传输时延比较大、带宽小,往往请求和结果返回的数据传输时延远大于远端Server的业务平均服务时长,而且传输数据量受到限制,有别于局域网内的Client/Server模型。在实际的应用系统中,设计者往往不管对端Server是否能处理,尽可能地将请求发过去,由对端Server进行缓冲、排队,在大业务请求情况下造成无效数据传输。因此,我们需要在Client端建立流量控制机制。
在一个简单广域网上的Client/Server案例中,Client的请求经过一定时延t1到达Server端,Server响应请求,进行业务处理,业务处理时长为t2,然后将结果回送,经过时延t3返回到Client,从Client端看,单个请求的服务时长为t1+t2+t3,而Server端的平均服务能力m = c/t2不变,如图3.3。

图3.3、广域网Client/Server结构图

当Client平均业务请求量大于Server的服务能力时,许多业务请求将因不能进入Server端排队队列而被拒绝,这部分业务请求带来的数据传输量属于无效数据。
我们可以进行抽象:在Client与广域网传输之间设立参考点,将广域网传输和Server合并看成一个广义的Server,在该参考点配置排队队列,如图3.4。

图3.4、多级流量控制的广域网Client/Server模型

在抽象的Server中,有X个虚拟并发服务,每个服务服务时长为(t1+t2+t3)。X与实际Server参数c、m的关系分为两种情况:
1、 广域网的网络带宽不是瓶颈时,X= m(t1+t2+t3));
2、 广域网的网络带宽限制时,X与广域网带宽有关。表现为Server有足够处理能力,而Client因广域网带宽限制无法将请求发送到Server。
基于该抽象模型,我们可以计算队列长与平均等待时间、平均逗留时间、损失率等的关系,使系统达到最优设计和最优控制,以最小费用实现系统的最大效益。

3.3 多队列排队系统

在实际的Client/Server应用中,服务是多种多样的,每种服务的服务能力也不一样。同时在单队列模式下,存在一些服务质量问题,比如:因某一种服务的时长异常增加很多、或不返回(某个服务访问的数据被锁住、某广域网系统内的某个节点系统出现异常),造成服务端被该种服务全部占用,形成异常堆积效应,从而对其他正常服务形成阻塞。
针对多样性服务应用环境,我们可以考虑按服务种类划分队列,即多队列排队系统,如图3.5。

图3.5、多队列的排队系统

Client端请求进入Server后,路由模块根据请求类别,将请求分别放入不同的队列进行排队,由Server提供差异的服务。
在实际应用系统中,我们可以根据每种服务的平均服务时长、请求量、接通率要求等参数计算出最优的每种服务并发数、每种队列长度。
请求可以按多个维度进行划分。从时效性角度分,可分为实时性请求和非实时性请求。按事务完整性角度分,可分为必须保证完整的事务、允许损失的事务。针对不同的服务需求,需要设置灵活的排队系统参数。

事务 时效
实时
非实时
保证完整
排队队列长
服务并发配置强
排队队列长
服务并发配置适中
允许损失
排队队列长度、服务并发配置按计算值达到损失率要求
在保证其他种类服务的服务能力前提下配置本服务并发数量,调整排队队列长度尽量满足损失率要求

3.4 跨队列服务

在多队列排队系统中,如果按照服务种类分别配置不同并发数量的服务及不同的排队队列,在某些情况下,当服务能力强的服务接受到教少的请求而服务能力弱的服务接受到教多的请求时,将造成Server资源闲置而服务质量低。为解决这种问题,我们引入跨队列服务排队模型,如图3.6。

图3.6、跨队列服务的排队系统

在图中,Server AB即为跨队列的服务,可以同时响应队列A、队列B中的请求。如果队列A比队列B优先,我们可以设定Server AB优先服务队列A中的请求,当队列A空时,Server AB才服务队列B中的请求。
跨队列排队系统中可以针对不同队列配置专门的服务,以保证最低的服务能力。
这一模型还可以扩展出多种具体应用。

4 结束语

作为中国移动梦网价值链上的核心系统:MISC系统,管理SP业务及用户商务订购关系。MISC系统现网运行特点是业务量大(每秒几千到万次的请求/服务)、实时性高(每个服务时长几毫秒到几百豪秒)、数据量大(每月几TB的数据)、可靠性高(7*24小时不间断运行)、业务变化快,尤其需要对业务进行流量控制。MISC系统中只要存在客户/服务、远程传输的环节,均可采用排队论的方法进行流量控制设计和分析,以合理的配置达到最优的运行效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: