性能之巅读书笔记-1、2、3、4、5章

性能定义

性能是一个很主观的概念,从某种程度上,一个给定指标是“好”或者“坏”取决于应用开发人员和最终用户的性能预期。同构定义清晰的目标,对性能指标化,量化,才能够把主管的性能进行客观化。

性能问题排查方法

“在取得问题之前就把事情理论化是一个严重的错误。不理智的人扭曲事实来适应理论,而不是改变理论来适应事实。”

建立系统模型

受测系统,注意扰动是会影响测试结果的。扰动的来源包括定时执行的系统活动、系统其它用户或者其它工作负载、云环境中其它租户引起的活动等。

组件和资源可以模型化成排队系统。

性能问题概念

延时

时间单位指标

单位 简写 与1秒的比例
m 60
s 1
毫秒 ms 10^-3
微秒 us 10^-6
纳秒 ns 10^-9
皮秒 ps 10^-12

时间量级

事件 延时 相对时间比例
1个CPU周期 0.3ns 1s
L1缓存访问 0.9ns 3s
L2缓存访问 2.8ns 9s
L3缓存访问 12.9ns 43s
主存访问(从CPU访问DRAM) 120ns 6分
固态硬盘I/O(闪存) 50-150us 2-6天
旋转硬盘I/O 1-10ms 1-12月
互联网:旧金山到纽约 40ms 4年
互联网:旧金山到英国 81ms 8年
互联网:旧金山到澳大利亚 183ms 19年
TCP包重传 1-3s 105-317年
OS虚拟化系统重启 4s 423年
SCSI命令超时 30s 3千年
硬件虚拟化系统重启 40s 4千年
物理系统重启 5m 32千年

调整的影响

性能调整发生在越靠近工作执行的地方,效果越显著。对于工作负载驱动的应用程序,所执行的工作就是应用程序本身。

指标

使用率

基于时间

基于容量

饱和度

方法论

性能调整领域是“你知道的越多,你不知道的也就越多”。这和学习系统是一样的原理:你了解得越多,你就能意识到未知的未知就越多,然后这些未知的未知就会变成你可以去查看的已知的未知

街灯讹方法(反面)

随机变动讹方法(反面)

责怪他人讹方法(反面)

Ad Hoc 核对清单法

技术人员根据核对清单,一一进行检查。

问题陈述法

1.为什么会认为有性能问题?
2.系统之前运行得好吗?
3.最近有什么改动?软件?硬件?负载?
4.问题能够用延时或者运行时间来表述吗?
5.问题影响其他人和应用程序吗?
6.环境是怎么样的?用了哪些软件和硬件?是什么版本呢?是怎么样的配置?

科学法

问题-》假设-》预测-》实验-》分析

诊断循环法

工具法

USE方法(重点)

utilization、saturation、errors。 对于所有的资源,查看它的使用率、饱和度和错误。

工作负载特征归纳

向下挖掘分析

R方法

事件追踪

基础线统计

系能监控

排队论

静态性能调试

缓存调优

微基准测试

容量规划

统计

量化性能

平均值

1.几何平均值
2.调和平均值
3.随着时间变化的平均值
4.衰退平均值

标准方差、百分位数、中位数

变异系数

多模态分布

异常值


标签: none


仅有一条评论

  1. typecho markdown 解析器识别不出table


添加新评论