性能之巅-读书笔记(1)

system-wide analysis 意思是对整个系统进行的分析。

这个词语通常用在复杂的系统或组织上,表示要采取全面而综合的方式来分析这个系统。

例如:

  1. 对公司的system-wide analysis,以找出生产过程中的问题所在。

  2. 对城市交通系统进行system-wide analysis,以确定哪些地方出现拥堵。

  3. 对教育体系进行system-wide analysis,找出影响教学质量的因素。

  4. 对病人的健康问题进行system-wide analysis,不仅看身体症状,也要分析生活方式、工作环境等因素。

  5. 政府进行关于贫困问题的system-wide analysis,分析经济、社会、教育等各方面因素。

简单来说,system-wide analysis就是采取全面和综合的视角,从不同层面、不同方面来分析一个大系统,找出系统性的问题所在,并给出建议或解决方案。它强调问题的复杂性和系统性,而不仅仅局限在某个狭窄的视野或层面。

capacity planning 翻译为容量规划或能力规划,是指对一个系统或组织的生产能力进行预估和规划,以满足当前和未来的业务需求。

capacity planning 的主要目的是确保有充足的资源和能力来应对业务增长或客户需求的变化,避免因容量不足而影响业务运营。进行 capacity planning 通常会考虑以下几个方面:

  1. 分析历史需求模式,预测未来需求变化趋势。

  2. 评估现有设施、设备、人力等生产要素的能力和限制。

  3. 根据需求预测,计算所需要的新增产能。

  4. 制定容量扩充计划,如增加设备、场地、人员等。

  5. 确定所需资金投入,评估投资回报。

  6. 定期监控和审查已有容量,进行调整。

  7. 平衡好过剩和不足的风险。

Capacity planning 适用于各种系统,如生产系统、仓储系统、IT系统、服务系统等。实施容量规划可以提高资源利用率,控制成本,为业务扩张做好准备。它通常是企业战略规划的重要组成部分。

性能领域包括以下事情

  1. 设置性能目标和建立性能模型
  2. 基于软件或硬件原型进行性能特征归纳
  3. 对开发代码进行性能分析(软件整合之前)
  4. 执行软件非回归性测试(软件发布前或发布后)
  5. 针对软件发布版本的基准测试
  6. 目标环境中的概念验证(Proof-of-concept)测试
  7. 生产环境部署的配置优化
  8. 监控生产环境中运行的软件
  9. 特定问题的性能分析

Proof-of-concept 翻译为“概念证明”,意思是对一个想法、设计或方法的可行性进行验证和证明。

通常包含以下主要特征:

  1. 用最小可行的产品或方法来验证某一概念或理论是否可行。

  2. 目标是展示该概念在解决特定问题或需求方面的潜力和可行性。

  3. 可以是原型,也可以是模拟实验、模型等。重点在于获取验证该概念的有效性所需的预期数据。

  4. 如果结果满足预期,则提供继续投入研发的依据。如果不符合,则需要调整甚至放弃该概念。

  5. 整个过程充满试验性质,目标不是最终成品。

举例来说,一个新产品在上市前会先做Proof-of-concept,来证明该产品的核心技术和设计在功能和用户体验上是可行的。一个医疗项目也会在临床试验前进行Proof-of-concept,以验证该疗法的科学理论基础。

所以,Proof-of-concept对于验证新想法的可行性非常重要,可以在投入大量资源开发前检验风险。它是任何概念从理论到实践的重要一步。

负载分析(Load Analysis)和资源分析(Resource Analysis)都是对系统的性能和容量进行分析评估的方法。

负载分析主要是分析系统在正常或峰值负载下的运行状况,关键在于负载(Load)。

  • 它侧重对系统所承受的负载进行计量,如网络流量、并发用户请求、每秒交易量等。

  • 通过设定不同负载参数,模拟系统在不同负载下的性能表现。

  • 目的是确定系统的负载容量,防止超载,提供合理配置。

资源分析主要是分析系统所需要的各种资源状况,关键在于资源(Resource)。

  • 它侧重对系统所需的关键资源进行分析,如服务器、带宽、内存、存储等。

  • 对各种资源的供给与消耗情况进行测量和评估。

  • 目的是合理配置和调配资源,提供系统所需的资源支持。

简单来说,负载分析关注输入量,资源分析关注处理能力。它们通常要结合进行,才能全面评估系统的性能和容量,做出优化的配置和扩容方案。二者都是对系统的容量进行考量,但侧重点不同。

纳秒(ns):10-9秒[编辑]

1纳秒(nanoseconds)即1000皮秒;也叫纳秒、奈秒、诺秒、纤秒、那诺秒、毫微秒。

微秒(µs):10-6秒[编辑]

1微秒(microsecond)即1000纳秒。

毫秒(ms):10-3秒[编辑]

1毫秒(millisecond)即1000微秒。

  • 1毫秒 – 大部分电脑计算时间的基本单位。许多程式计算延迟的基本单位。
  • 2.4毫秒 – 鿔元素的半衰期。
  • 3毫秒 – 苍蝇 搧一次翅膀的时间。
  • 5毫秒 – 蜜蜂 搧一次翅膀的时间。

(s)[编辑]

国际单位制中时间的基本单位,本页面的单位基准。1秒即1000毫秒。

一般很少使用比秒更大的字头单位(如千秒等),而用小时 等。

  • 60秒 – 1分钟的长度。

延时(Latency)是一个常见的性能指标,在性能测试中起着非常重要的作用。

简单来说,延时是指系统处理一个请求或者完成一个操作所花费的时间。它反映了系统的响应快慢。常见的延时指标有:

  • 网络延时:数据从发送端传到接收端所花费的时间。反映了网络的传输速度。

  • 服务延时:服务端处理一个请求并返回响应结果所花费的时间。反映了服务的响应效率。

  • 事务延时:用户发起一个业务操作直到得到结果所花费的时间。反映了整个业务流程的执行效率。

影响延时的因素有:网络带宽、系统架构、代码优化、服务器性能等。延时过高会严重影响用户体验。

在性能测试中,关注延时指标可以帮助我们:

  • 定位系统瓶颈,发现性能问题所在。

  • 对比不同配置下的延时曲线,找出最优方案。

  • 设置延时阈值,避免响应过慢影响业务。

  • 模拟不同并发用户下的延时情况。

通过延时分析,可以持续优化系统性能,提升用户体验,这是每一个资深性能测试工程师必备的专业技能。

每秒发生的IO次数(IOPS)是评测存储系统性能的一个重要指标。

IOPS表示在一秒内系统能够执行的输入输出(Input/Output)操作总次数。输入输出操作包括读取和写入操作。

一般来说,IOPS值越高,说明存储系统能够处理的IO请求越多,性能也就越好。

影响IOPS的因素有:

  • 硬盘转速,如普通硬盘转速较慢,固态硬盘转速更快
  • 随机或顺序读取写入,随机IO性能较差
  • 队列深度,请求越多,等待处理的队列越长
  • 读取写入比例,读写比例不均衡也会降低IOPS

IOPS常见的应用场景:

  • 评估存储系统能力,是否满足业务需求
  • 对比不同存储配置的性价比
  • 定位存储性能瓶颈
  • 监控存储性能变化趋势

提高IOPS可以改善存储读写性能,提升系统整体响应速度。所以IOPS是一个非常重要的性能指标,需要关注和分析。

TCP Handshake

![TCP Handshake](https://raw.githubusercontent.com/onlywyt/wyt-pic/main/img/Kapture 2023-09-23 at 19.54.29.gif)