Kendall’s notation肯德尔记法
原用三个因子描述排队模型,后扩充为6个:
- A:到达队列之间的时间。意思是说每两个人,第一个人到达的时间与第二个人到达的时间差。
- S:服务时间。服务者为每个人服务所需要的时间。
- c:服务人员的数量。特殊情况就是
c=1
- K:队列容量。比如一家咖啡厅最多能容纳多少顾客。
- N:顾客数量。就是
- D:队列优先顺序。比如FIFO,或者LRU,或者特权优先
后面三个如果省略不写,则意味着无穷大和FIFO
M/M/1队列模型
M指的是Markov,马尔科夫,一种随机概率模型。也就是说M/M/1实际上是M/M/1/
∞
\infty
∞/
∞
\infty
∞/FIFO
M/M/1是一种单一服务器模型,就是只有一个服务器工作,处理请求。
这是一种排队模型,所以要依据“肯德尔记法”,Kendall’s notation,满足如下条件:
- 到达时间成泊松分布(Poisson Distribution)
- 服务时间是指数分布(Exponential Distribution)
- 一台服务器
- 队列容量无限
- 顾客数量无限
泊松分布:
P
(
X
=
k
)
=
λ
k
k
!
e
λ
,
k
=
0
,
1
,
.
.
.
P(X=k) = \frac{\lambda^k}{k!}e^{\lambda}, k=0,1,...
P(X=k)=k!λkeλ,k=0,1,...
λ
\lambda
λ是单位时间内,事件发生的次数。
指数分布:
需要特殊说明的是,指数分布和泊松分布都属于马尔科夫模型,因此他们都属于M/M。
用公交车模型来模拟M/M/1队列:
- 上公交车的速率(加入队列的速率)为 λ \lambda λ
- 离开公交车的速率(离开队列的速率)为 μ \mu μ
- 公交车在服务,且是唯一服务者
- 公交车可容纳无限制的人数
- 等待公交车到达的人数无限制
其中:
- 缓冲效用: ρ = λ μ \rho=\frac{\lambda}{\mu} ρ=μλ代表服务被占用的平均概率。
- 系统处在一共
i
个人的概率为: P r o b a b l i t y ( q = i ) = π i = ( 1 − ρ ) ρ i Probablity(q=i) = \pi_i = (1-\rho)\rho^i Probablity(q=i)=πi=(1−ρ)ρi - 系统的平均人数为: N ‾ = ρ 1 − ρ \overline{N} = \frac{\rho}{1-\rho} N=1−ρρ,方差为: σ N 2 = ρ ( 1 − ρ ) 2 \sigma_N^2 = \frac{\rho}{(1-\rho)^2} σN2=(1−ρ)2ρ
- 单位时间内系统完成服务的人数: N S = ρ μ = λ N_S = \rho \mu = \lambda NS=ρμ=λ
- 在队列中等候服务的人数(等待下车的人): N ‾ Q = ρ 2 1 − ρ \overline{N}_Q = \frac{\rho^2}{1-\rho} NQ=1−ρρ2
- 每个人的平均逗留时间(等待公交车+等待到站的时间): T = 1 μ − λ T=\frac{1}{\mu - \lambda} T=μ−λ1
- 每个人的等待服务时间: W = N ‾ Q λ = T − x ‾ = T − 1 μ = ρ 1 − λ W=\frac{\overline{N}_Q}{\lambda} = T-\overline{x} = T - \frac{1}{\mu} = \frac{\rho}{1-\lambda} W=λNQ=T−x=T−μ1=1−λρ
Little’s Law李特尔法则
利特尔法则可用于一个稳定的、非占先式的系统中。也就是FIFO或者FILO,不存在特权人物。
L
=
λ
W
L = \lambda W
L=λW
L
L
L是平均顾客人数,
λ
\lambda
λ是有效抵达率,
W
W
W是等待时间。
公式简单但是难懂,用一个计算机科学中的例子:
在QQ的文件传输中需要使用线程池操作,假设每个文件需要一个线程,平均每个线程传输文件使用的时间为10s,每秒有1w人传输文件,请问线程池中需要维护的线程有多少?
答案是:L=1w*10s=10w个线程
什么意思呢?就是线程池中只需要保持10w个线程就能解决需求(当然是理想情况下)
马尔科夫链
前面说到,马尔科夫是一种随机概率模型,马尔科夫链就是一系列随机过程的结果的合集,他们是离散的。
那么每一状态点之间都有相互关系,又都没有相互关系。
有相互关系指的是,每一个状态点都可以通过概率关系转换成两一个状态点。二没有关系指的是,每一个状态点的出现都是独立的,不受其他状态点影响的。
假设
π
0
\pi_0
π0是初始状态,
π
1
\pi_1
π1是中间状态,
π
n
\pi_n
πn是结束状态,有:
- λ π 0 = μ π 1 λ 是 前 进 概 率 , μ 是 返 回 概 率 \lambda\pi_0 = \mu\pi_1 \ \ \ \ \ \ \ \ \ \ \lambda是前进概率,\mu是返回概率 λπ0=μπ1 λ是前进概率,μ是返回概率
- ( λ + μ ) π 1 = λ π 0 + μ π 2 (\lambda+\mu)\pi_1 = \lambda\pi_0 + \mu\pi_2 (λ+μ)π1=λπ0+μπ2
- ( λ + μ ) π n = λ π n − 1 + μ π n + 1 (\lambda+\mu)\pi_{n} = \lambda\pi_{n-1} + \mu\pi_{n+1} (λ+μ)πn=λπn−1+μπn+1
- π n = ( λ μ ) n π 0 \pi_n = (\frac{\lambda}{\mu} )^n\pi_0 πn=(μλ)nπ0
- 此时让
ρ
=
λ
μ
,
ρ
<
1
\rho=\frac{\lambda}{\mu}, \rho<1
ρ=μλ,ρ<1,有
1
=
Σ
i
=
0
∞
π
i
=
π
0
Σ
i
=
0
∞
ρ
i
=
π
0
1
−
ρ
1 = \Sigma_{i=0}^\infty\pi_i = \pi_0\Sigma_{i=0}^\infty\rho^i = \frac{\pi_0}{1-\rho}
1=Σi=0∞πi=π0Σi=0∞ρi=1−ρπ0。所以有,
π
0
=
1
−
ρ
.
\pi_0 = 1-\rho.
π0=1−ρ.
- 证明: π 0 Σ i = 0 ∞ ρ i = π 0 1 − ρ \pi_0\Sigma_{i=0}^\infty\rho^i = \frac{\pi_0}{1-\rho} π0Σi=0∞ρi=1−ρπ0,等于证明 Σ i = 0 ∞ ρ i = 1 1 − ρ \Sigma_{i=0}^\infty\rho^i = \frac{1}{1-\rho} Σi=0∞ρi=1−ρ1 ,等于证明: ρ 0 + ρ 1 + . . . + ρ n = 1 1 − ρ \rho^0+\rho^1+...+\rho^n = \frac{1}{1-\rho} ρ0+ρ1+...+ρn=1−ρ1.等比数列求和,首项为1,比为 ρ \rho ρ, ρ n \rho^n ρn接近无穷。