队列技术
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完成率。 通常情况下,到达率是外部影响的,通常是比较难调的。所以一般调整完成率。
转载于:https://blog.51cto.com/redhatmanage/617277