队列技术

1.    概述

数值化所有可调的参数,让任何调整都有数据支持,即队列理论(排队论)。由 1910 年的时候丹麦科学家 A.K.Erlang 提出来的。

l  队列长度是可以调整的,调整队列这样可以优化读写的性能。

l  短队列的好处:在内存中一个少的队列的长度,会对我们的内存有利。

 

l  长队列的好处:可以对多个队列进行合并读写,这样可以更少的 IO 操作,有更高的性能。

2.    队列理论的公式

L = A * W

l  L:队列长度(queue length)。

#number of request指在系统中等待处理的请求的平均数,单位个。

l  A: 平均到达率。

#请求到达系统的比例,A  假如衡量标准为s,则每s有多少个请求到达。

l  W: 平均等待时间。

#处理完成一个请求所需要的时间;(该指标也被理解为延迟、响应时间或者驻留时间)。

通常到达率A是无法改变和调整的。(如:A是每天的web访问人数。)我们主要是要要调节 "L" 和 "W" 来控制到达率的请求的处理,最大的可调性是 W 等待(处理)时间。

3.  W 总的等待(处理)时间的公式

W = Q + S     或   W = Q + (Tsys + Tuser)

l  W: 总的等待(处理)时间

l  Q: 排队等着处理的时间

l  S: 服务用的时间,S=Tsys+Tuser

n  Tsys: 系统时间(与内核有关的),内容处理这个响应调度花的时间,比上中断,上下文件切换。

n  Tuser: 用户时间(是与应用程序有关的),应用程序处理应用花的时间,真实程序使用的时间

实例:time查看命令处理时间

[root@station8 ~]# time dd if=/dev/zero of=test bs=1M count=500

500+0 records in

500+0 records out

524288000 bytes (524 MB) copied, 0.909336 seconds, 577 MB/s

real    0m0.911s          #W时间

user    0m0.001s          #Tuser时间

sys     0m0.910s          #Tsys时间

4.    完成率(completion rate)

B=X + O

l  B:带宽Bandwidth, 数据Data+开销 Overhead

l  X: 速率Throughput,吞吐量,通常是要减去开销的。就是指单纯的数据(eg:Mbps)

l  O:开销Overhead,工作中所消耗的部分(eg:Mbps)

#通常情况下带宽B是固定的,减小开销O可以提升速率X

A & C

l  A:到达率,同一时间的请求数(eg:packets/s)

l  C:完成率,同一时间完成的请求数(eg:packets/s)

#最理想的状态时:到达率A=C完成率。 通常情况下,到达率是外部影响的,通常是比较难调的。所以一般调整完成率。