天天看点

RH442-3 队列技术

 队列技术

<b>1.    </b><b>概述</b><b></b>

<b></b>

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

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

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

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

<b>2.    </b><b>队列理论的公式</b><b></b>

<b>L = A * W</b>

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

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

l  A: 平均到达率。

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

l  W: 平均等待时间。 

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

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

<b>3.  </b><b>W </b><b>总的等待</b><b>(</b><b>处理</b><b>)</b><b>时间的公式</b><b></b>

<b>W = Q + S     </b><b>或</b><b>   W = Q + (Tsys + Tuser)</b>

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时间

<b>4.    </b><b>完成率(</b><b>completion rate</b><b>)</b><b></b>

<b>B=X + O</b>

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

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

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

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

<b>A &amp; C</b>

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

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

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

本文转自netsword 51CTO博客,原文链接:http://blog.51cto.com/netsword/563959

继续阅读