- 延迟(Latency): 一个操作等待被处理的时间。在某些背景中,它可能指的是整个操作的时间,等同于响应时间。
- 响应时间(Response time): 一个操作完成的时间。这包括任何花费的等待时间及正在被处理的时间,包括结果传输的时间。
- 吞吐量(Throughput): 执行工作的速率。特别在通讯中,该术语用来指代数据速率(如字节/秒或比特/秒)。在某些背景下(如数据库),吞吐量可能指的是操作速率(如操作/秒或交易/秒)。
- IOPS: 是每秒输入/输出操作数,它衡量数据传输操作的速率。对于磁盘I/O,IOPS指的是每秒的读取和写入。
- 利用率(Utilization): 对于处理请求的资源,利用率是衡量资源忙碌程度的一个标准,基于在给定的时间间隔中,它究竟进行了多少工作。对于提供存储的资源,利用率可能指的是已使用的容量(如内存利用率)。
1. 基于时间的
利用率 = 服务器或资源忙碌的平均时间 U = B/T 其中:
U = 利用率
B = 在时间T内,系统忙碌的总时间
T = 观察期间
2. 基于容量的利用率
一个系统或组件(如硬盘驱动器)能够提供一定数量的吞吐量。
100%的忙碌并不意味着100%的容量。
-
饱和度(Saturation): 一个资源有积压的、无法处理的工作的程度。
-
瓶颈(Bottleneck): 在系统性能中,瓶颈是限制系统性能的资源。识别并消除系统瓶颈是系统性能的关键活动。
-
工作负载(Workload): 输入到系统或应用负载的载荷。对于一个数据库,工作负载由客户端发送的数据库查询和命令组成。
-
缓存(Cache): 一个可以复制或缓存有限量数据的快速存储区域,以避免直接与较慢的存储层通信,从而提高性能。由于经济原因,缓存通常比较慢的存储层要小。
饱和度与缓存
- 当利用率(基于容量)达到100%时,饱和度开始出现。
- 缓存常用于提高性能,存在多个缓存层级。
方法论
1. 工具方法
- 列出可用的性能工具(或选择性地安装或购买更多)。
- 对于每个工具,列出它提供的有用指标。
- 对于每个指标,列出可能的解释方法。
2. USE方法
对于每个资源,检查以下内容:
- 利用率
- 饱和度
- 错误
这些资源包括:
- CPU
- 主内存
- 网络接口
- 存储设备
- 加速器
3. RED方法
- 对于每个服务(如微服务架构中的云服务),检查以下内容:
- 请求率
- 错误
- 持续时间
4. 工作负载特性
- 主要关注系统的输入,而不是由此产生的性能。
5. 监控
- 记录性能统计信息以与现在的数据进行比较,从而识别基于时间的使用模式。这对于容量规划、量化增长和显示峰值使用情况都很有用。历史数据还可以为理解性能指标的当前值提供背景信息。
6. 容量规划
- 研究系统如何处理负载,以及随着负载的增加如何扩展。
- 研究资源的极限、因子分析和建模。
- 确定和满足组织未来的工作负载需求的过程。
- “预测工作负载变化时何时会违反服务水平,并确定延迟系统饱和的成本有效方式”。
- 挑战:使用负载(资源需求)波动、峰值使用、供应成本等。
资源供应 & 成本
a. 为峰值负载供应:即使可以正确预测峰值负载,在非高峰时间资源也会被浪费(阴影区域)。 b. 供应不足:未服务用户的潜在收入损失(阴影区域)。
资源调配
- 领先策略:预先增加容量以满足需求。
- 滞后策略:当资源达到其全容量时增加容量。
- 匹配策略:随着需求的增加,逐步增加容量。
系统的容量
- 标称容量:在理想的工作负载条件下的最大吞吐量,例如网络的带宽(以bps计)。
- 可用容量:在不超过预先指定的响应时间限制的情况下,可以达到的最大吞吐量。
- 膝部容量:响应时间随负载快速增加,但吞吐量增加很小的点。
- 注意:吞吐量(管理)与响应时间(用户)之间的关系是反向的。
服务级别协议(SLA)
- 决定应用程序的用户在响应时间、吞吐量、系统可用性、可靠性等方面可以期望什么。
- 关注用户可以理解的指标。
- 设定容易衡量的目标。
- 将IT成本与您的SLA关联起来。
支持容量规划的3种模型
- 工作负载模型:捕获不同类型的交易和请求的资源需求和工作负载强度特性。
- 性能模型:根据系统描述和工作负载参数,预测响应时间、利用率和吞吐量等。
- 这些性能指标与服务级别协议相匹配,以确定系统的容量是否足够。
- 成本模型:初始/运营成本,如软件、硬件、电信、电力和支持开支。
容量规划的步骤
- 了解环境。
- 工作负载特征化与建模。
- 工作负载预测。
- 性能建模与预测。
- 成本模型。