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. 一次只能调整上面的一项。

RHCA学习笔记:RH442-Unit5 队列原理的更多相关文章

  1. Linux进程间通信IPC学习笔记之消息队列(SVR4)

    Linux进程间通信IPC学习笔记之消息队列(SVR4)

  2. Java IO学习笔记:概念与原理

    Java IO学习笔记:概念与原理   一.概念   Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...

  3. tensorflow学习笔记——模型持久化的原理,将CKPT转为pb文件,使用pb模型预测

    由题目就可以看出,本节内容分为三部分,第一部分就是如何将训练好的模型持久化,并学习模型持久化的原理,第二部分就是如何将CKPT转化为pb文件,第三部分就是如何使用pb模型进行预测. 一,模型持久化 为 ...

  4. 强化学习-学习笔记7 | Sarsa算法原理与推导

    Sarsa算法 是 TD算法的一种,之前没有严谨推导过 TD 算法,这一篇就来从数学的角度推导一下 Sarsa 算法.注意,这部分属于 TD算法的延申. 7. Sarsa算法 7.1 推导 TD ta ...

  5. RHCA学习笔记:RH442-Unit6 磁盘性能调整

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://alansky.blog.51cto.com/634963/654451 UNIT ...

  6. 机器学习实战(Machine Learning in Action)学习笔记————10.奇异值分解(SVD)原理、基于协同过滤的推荐引擎、数据降维

    关键字:SVD.奇异值分解.降维.基于协同过滤的推荐引擎作者:米仓山下时间:2018-11-3机器学习实战(Machine Learning in Action,@author: Peter Harr ...

  7. Android(java)学习笔记95:Android原理揭秘系列之View、ViewGroup

    作过Android 应用开发的朋友都知道,Android的UI界面都是由View和ViewGroup及其派生类组合而成的.其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器, ...

  8. RHCA学习笔记:RH442-Unit8进程与调度

      UNIT 8  Processes and the Scheduler 进程与调度 学习目标 A. CPU cache 与Service time之间的关系 B. 分析应用程序使用CPU cach ...

  9. Android学习笔记View的工作原理

    自定义View,也可以称为自定义控件,通过自定义View可以使得控件实现各种定制的效果. 实现自定义View,需要掌握View的底层工作原理,比如View的测量过程.布局流程以及绘制流程,除此之外,还 ...

随机推荐

  1. protel dxp快捷键大全

    enter——选取或启动 esc——放弃或取消f1——启动在线帮助窗口tab——启动浮动图件的属性窗口pgup——放大窗口显示比例pgdn——缩小窗口显示比例end——刷新屏幕del——删除点取的元件 ...

  2. ElasticSearch大数据分布式弹性搜索引擎使用—从0到1

    阅读目录: 背景 安装 查找.下载rpm包 .执行rpm包安装 配置elasticsearch专属账户和组 设置elasticsearch文件所有者 切换到elasticsearch专属账户测试能否成 ...

  3. WordPress Suco Themes ‘themify-ajax.php’任意文件上传漏洞

    漏洞名称: WordPress Suco Themes ‘themify-ajax.php’任意文件上传漏洞 CNNVD编号: CNNVD-201311-403 发布时间: 2013-11-28 更新 ...

  4. -_-#【CSS 优化】

    高性能CSS 关于css通配符性能问题不完全测试 CSS的渲染效率 border: none; /* 不写 border: 0; 但几乎都是写 border: 0;的.. */ 不要使用过小的图片做背 ...

  5. Xcode6 运行程序后,右侧Debug区域的Memory显示空白解决方法

    http://chenyh-blog.com/%E8%9B%8B%E7%96%BC%E7%9A%84%E5%86%85%E5%AD%98-%E7%AC%AC%E4%B8%89%E7%AF%87-sdw ...

  6. 【转】我的WIN7分辨率是1920*1080,调低后字体模糊

    原文网址:http://tieba.baidu.com/p/778306758 WIN7还有一个“使用XP风格DPI缩放”的选项,如果选中则只放大文字,不选会连对话框和文字全部放大 这么多层楼,只有这 ...

  7. MVC3系列~Html.BeginForm与Ajax.BeginForm

    Html.BeginForm与Ajax.BeginForm都是MVC架构中的表单元素,它们从字面上可以看到区别,即Html.BeginForm是普通的表单提交,而Ajax.BeginForm是支持异步 ...

  8. c#调用带有安全认证的java webservice

    最近使用c#调用另外一个同事写的java webservice耽误了很多时间,网上资料不太完整,走了很多弯路,希望对大家有帮助. 基本思路是1.拼装soap使用http post ,主要将验证身份信息 ...

  9. Android ListView初始化简单分析

    下面是分析ListView初始化的源码流程分析,主要是ListVIew.onLayout过程与普通视图的layout过程完全不同,避免流程交代不清楚,以下是一个流程的思维导图. 思维导图是顺序是从左向 ...

  10. (6)s3c2440用I2C接口访问EEPROM

    在前面阅读理解了I2C的官方协议文档后,就拿s3c2440和EEPROM来验证一下. 本来是想用s3c2440的SDA和SCL管脚复用为GPIO来模拟的,但在没有示波器的情况下搞了一周,怎么都出不来, ...