性能之巅读书笔记--第二章 方法

性能之巅读书笔记--第二章 方法

术语--几个不常见的记录
饱和度:指的是某一资源无法满足服务的排队工作量
瓶颈:在系统性能里,瓶颈指的是限制系统性能的那个资源。分辨和移除系统瓶颈是系统性能的一项重要工作
扰动(perturbation)是会影响结果的,扰动包括定时执行的系统活动、系统的其他用户以及其他的工作负载

CPU周期
CPU 周期的时间是很微小的。这段时间光只能走0.5 米。很可能你眼睛到这页书的距离,光大约走了1.7ns。这段时间里,现代的CPU 已经执行了5 个CPU 循环,处理了若干个指令。

时延
最极端的环境,像股票交易所和高交易率的电商,性能和延时对它们很关键,值得投入大量的人力和财力。举一个例子,一条新的横跨大西洋的连接纽约交易所和伦敦交易所的光缆正在规划之中,花费预计3 亿美金,用以减少6ms 的传输延时。

性能下降快慢原因
发生性能“快速”下降可能是由于内存的负载,就是当系统开始换页(或者使用swap)来补充内存的时候。发生性能“慢速”下降则可能是由于CPU 的负载。
还有一个“快速”性能下降的情况是磁盘I/O。随着负载(和磁盘使用率)的增加,I/O可能会排队。空闲的旋转的磁盘可能I/O 服务响应时间约1ms,但是当负载增加,响应时间会变成10ms

电梯的例子说明100%使用率也能继续服务新的
在100%使用率的情况下,性能可能不会下降得太大,因为它们能接受更多的工作。要理解这一点,可以大楼电梯为例思考一下,当电梯在楼层间移动时,它是被使用的,当它闲置等待的时候,它是不用的。然而,即便当它在100%忙碌的时候,即达到100%使用率的时候,它依然还是能够接受更多的乘客的。

剖析
剖析(profiling)本意指对目标对象绘图以用于研究和理解。在计算机性能领域,profiling通常是按照特定的时间间隔对系统的状态进行采样,然后对这些样本进行研究。

缓存命中用温度表示:冷、热、温,很形象
热度:缓存的热度指的是缓存的热度或冷度。提高缓存热度的目的就是提高缓存的命中率。

资源分析的工具
资源分析是性能分析的常用手段。关于这个主题有着广泛的文档,诸如针对操作系统的“统计”工具:vmstat(1)、iostat(1)、mpstat(1)。

方法介绍
1、街灯讹方法:只使用熟悉的工具:相当于查看top(1),不是因为这么做有道理,而是用户不知道怎么使用其他工具。
2、随机变动讹方法:做不了解的改动还有另一个风险,即在生产负载的高峰期可能会引发更恶劣的问题,因此还需为此准备一个回退方案。
3、责怪他人讹方法:不去研究性能问题,用这种方法的人把问题推到了别人身上,当证明根本不是别人的问题时,这对其他团队的资源是种浪费。这个讹方法只是一种因缺乏数据而造成的无端臆想。
4、Ad Hoc 核对清单法:如果你管理一个技术支持的专业团队,AdHoc 核对清单能有效保证所有人都知道如何检查最糟糕的问题,能覆盖到所有显而易见的问题。核对清单能够写得清楚而又规范,说明了如何辨别每一个问题和如何做修复。不过当然,这个清单应该时常保持更新
--关键是要有一个清单
5、问题陈述法:询问这些问题并得到相应的回答通常会立即指向一个根源和解决方案--了解案发现场
6、科学法:1.问题2.假设3.预测4.试验5.分析
7、诊断循环:假设→仪器检验→数据→假设:这个循环强调数据可以快速地引发新的假设,进而验证和改良,以此继续。这与医生看病是很相似的,用一系列小检验来诊断病情,基于每次检验的结果来修正假设
8、工具法
当大量的工具和指标可被选用时,逐个枚举是很耗时的。当多个工具有相同的功能时,情况更糟,你要花额外的时间来了解各个工具的优缺点
9、USE 方法:USE 方法(utilization、saturation、errors)应用于性能研究,用来识别系统瓶颈[Gregg 13]。一言以蔽之,就是:对 于所有的资源,查看它的使用率、饱和度和错误
10、工作负载特征归纳
11、向下挖掘分析
12、延时分析
13、R 方法
14、事件跟踪
15、基础线统计
16、静态性能调整
17、缓存调优
18、微基准测试

研究性能的3方法
除对生产系统的观测(“测量”)和实验性测试(“仿真”)之外,分析建模可以被认为是第三类性能评估方法[Jain 91]。上述三者至少择其二可让性能研究最为透彻:分析建模和仿真,或者仿真和测量。

分析建模基于测试和仿真的结果,用于性能预测。

可扩展性分析可以揭示性能由于资源限制停止线性增长的点,即拐点。找到这些点是否存在,若存在,在哪里。

可视化很重要
当通过实验收集到了足够多的数据结果,就可以把它们绘制成性能随规模变化的曲线,这样的曲线往往可以揭示一定的规律。

Amdahl 扩展定律
由计算机架构师Gene Amdahl [Amdahl 67]的名字命名,该定律对系统的扩展性进行了建模,所考虑的是串行构成的不能并行执行的工作负载。这个定律可以用于CPU、线程、工作负载等更多事物的扩展性研究

排队理论
排队理论是用数学方法研究带有队列的系统,提供了对队列长度、等待时间(延时)、和使用率(基于时间)的分析方法。在计算领域的许多组件,无论硬件还是软件,都能建模成为队列系统。多条队列系统的模型叫做队列网络。

容量规划
容量规划可以检查系统处理负载的情况,以及系统如何随着负载的增加而扩展

云计算把水平扩展更推进了一步,云计算构建在许多较小的虚拟化系统之上而不是构建一个整个的系统。当用户购买计算来处理所需要的负载时,云计算能够提供更好的颗粒度,支持系统小规模且有效的扩展。

一个常见的数据库扩展策略叫做分片(sharding),把数据切分成一个个逻辑组件,每个组件由自己的数据库(或冗余的数据库组)来管理。举个例子,用户数据库可以根据顾客名字按字母范围来划分成几个

平均值的误导
平均值这个指标有严重的误导性。有人在渡平均深度6 英寸的河流时淹死。  W.I.E.盖茨

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值