RHCA学习笔记:RH442-Unit5 队列原理

NIT 5 Queuing Theory  队列原理
目标:
1.明白性能调优的关键术语
      2. 应用队列技术解决性能问题
      3.明白性能调优的复杂性
 
5.1     Introduction to queuing theory  队列原理简介
A.      Little’s Law 给出了队列原理的基础
John Little于1961年用数学证实了这个原理。
B.      带来的好处:
a.       能够用工程学方法来进行性能管理。
b.       量化系统将来的性能
c.       说明监测工具的输出内容之间关系
d.       验证测量值和软件仪表数据的正确性。
  
5.2     Little’s Law
A.      关键术语:
a.       Queue length: average number of requests waiting in the system
队列长度:在系统中同时等待的平均请求数.
b.       Arrival rate: the rate at which requests enter a system
到达率:一次性有多少请求到达系统
c.       Wait time: average time to satisfy a request
等待时间:知足一个请求的平均时间
Also known as wall clock,latency,response time,or residence time
             硬件时钟,延时,响应时间,驻留时间
  公式:       L = A W    队列长度= 到达率* 等待时间
                          A=arrivals/observation period A= 到达率/ 观测时间
 
5.3     Queue length  队列长度
A.      缓存在内存中的请求数
a.       L 能够是能够进行读写调整的或者只读的
b.       队列能够进行优先级排序
例:执行写以前先执行读(这就是为何要优先级排序)
            算法必须防止饿死。
B.      注意事项:
a.       短的队列长度能够优化内存
b.       长的队列长充能够对重要请求进行有效的从新排序
 
5.4     Queue length vs wait time  队列长度 VS  等待时间
A.      为了使到达率处于稳定状态
直接改变W来改变L
B.      例(假设到达率为200 requests/s):
a.       初步方案:400 req= 200 req/s * 2s
b.       减小W 或L: 200 req = 200 req/s * 1s
c.       提高W 或L: 800 req = 200 req/s * 4s
C.      小结
a.       在可预期的等待时间内限制队列长度
b.       限制等待时间来优化队列长度
 
5.5     Wait time  等待时间
A.等待时间包括:
   Queue time(排队时间:请求资源所花费的时间
Service time(服务时间):处理一个请求所花的时间
B. 策略:
    a. 减小排队时间
    b. 减小服务时间
 
   W=Q+S
   L=A (Q+S)
 
5.6     A closer look at wait time
A.      服务时间包括:
a.       System time系统时间:内核运算所花的时间
b.       User time用户时间:用户用于真正工做所花的时间
s= system call
u= user code
r= real time
r-u-s= real data transfer time
B. 策略
   a. 减小系统时间(阻塞用户模式操做)
       b. 只花费用户模式所需的时间
 
W=Q + (Tsys+Tuser)
 
5.7     How much user time is needed? For 20 inputs? For 100 inputs?
(略)
 
5.8     Profiling time with time  时间分析
A.      使用脚原本算出时间
Export TIME=”\n%e %S %U”
/usr/bin/time tar czf /tmp/demo.tgz /etc/ 2>&1 | tail –l | awk ‘BEGIN {print “W\tTsys\tTuser\tQ”} {print $1 ”\t” $2 “\t” $3 “\t” $1 - $2 - $3}’
a.       计算排队时间:Q=W – (Tsys+Tuser)
b.       能够分析出排队时间Q的问题。
 
5.9     Completion rate  完成率
A.      关键术语:
Bandwidth:data+overhead 带宽:数据+开销
Throughput:data only (Mbps)吞吐量:数据
Overhead: cost of doing work (Mbps) 开销:传输数据的开销
B.      带宽一般是固定的
减小开销能够提高吞吐量
 
B=X+O 带宽=完成率+开销
带宽固定的状况下,减小开销能够提升完成率。
 
5.10 Arrival rate vs completion rate  到达率 VS 完成率
     A. 关键术语:
        Arrival time(A)到达率:一次有多少个请求到达系统(packets/s)
        Completion rate(C)完成率:一次能够完成多少个请求(packets/s)
        Observation period观察时间:观察资源所花时间(1s)
        稳定状态:条件是当A=C时
B 目标:调整时用C替代A
a.       调整时到达率是系统外部因素,所以很难去调整。
b.       完成率是可调整的,但很出现到达率与完成率相等的状况
c.       系统不多真正的处于稳定状态。
d.       请求有可能在观察时间内完成不了
C.      警告:
a.       若是过度调整系统可能会引发系统不稳定,或者机器崩溃。
 
 
 
5.11 Finding a valid observation period  找出有效的观察时间。
A.      当观察时间适当长时,A average= C average
a.       用观察时间为1秒收集数据
b.       比较相对little’s Law 的测量值
c.       测量值是否匹配计算值?
如是,观察时间有效,且L=CW
如不是,用长点的间隔时间重复以上步骤。
B. 例:使用iostat 和dd 来肯定有效间隔时间。
    dd if=/dev/zero of =/tmp/bigfile bs=1M count=1024
 
5.12            redicting system-wide limits  预测系统性能极限
A.      木桶理论
X system =X resource / V resource
B.      小结
a.       饱和资源是瓶颈。
b.       减小访问次数(V resource)能够提升系统吞吐量
c.       提高资源吞吐量(X resource) 能够提升系统吞吐量。
 
5.13        Predicting resource limits  预测资源极限
A.      利用率法则
Utilization = (service time) * (arrival rate) 
利用率=服务时间 * 到达率
B.      在稳定状态(C=A)下资源饱和(U=1)
1=SC   è  C max =1/S
 
C.      资源饱和状况下:
a.       减小S能够提高C,所以A提升了
b.       增长到达数量会加大队列长度,因此等待时间上升了
c.       减小到达率来减小队列长度,因此等待时间降低了
 
5.14            Summary of strategies  策略汇总
A.      调整L
a.       限制队列长度
b.       对读请求进行排序,以更多的去响应读请求
B.      调整A或C
a.       经过更多的资源(SMP,RAID)减小访问次数。
b.       延时资源访问直到思考时间到。
c.       提升资源吞吐量(更有效的协议,较少的开销)
C.      调整W
a.       减小请求过时时间
b.       使用资源来减小服务时间(memory cache , disk)
     D. 一次只能调整上面的一项。
相关文章
相关标签/搜索