考点

  • 性能计算,如响应时间、吞吐量、TAT等
  • 性能设计,如系统设计、Amdahl解决方案、响应特性、负载均衡等
  • 性能指标,如SPEC-Int、SPEC-Fp、TPC、Gibsonmix、响应时间
  • 性能评估

性能计算

响应时间

指用户发出完整请求到系统完成任务给出响应的时间间隔。不同的角色对响应时间的关注点是不一样的:系统管理员的角度看,是服务器收到请求的时刻开始计时,到服务器完成请求并返回给用户的时间间隔;用户角度看,是从提交请求的时刻开始,直到客户端将服务端的请求解析并显示出来的时间间隔。显然,用户角度的响应时间要远长于系统管理员。

一般,影响系统响应时间的因素主要是:

  • 业务相关
  • 和业务组合相关
  • 和用户数量相关

常用的测量响应时间的方法主要是首字节响应时间和尾字节响应时间。

吞吐量

在给定时间内,系统的吞入能力和突出能力的指标。吞吐量相关的两个计算公式:

平均利用率ρ=平均到达事务数平均处理事务数(1)\text{平均利用率} \rho = \frac {\text{平均到达事务数}} {\text{平均处理事务数}} \tag{1}

平均响应时间=平均处理时间1ρ(2)\text{平均响应时间} = \frac {\text{平均处理时间}} {1 - \rho} \tag{2}

一般满足M/M/1排队模型均可使用上述公式计算。

性能设计

系统调整

目的:优化系统性能。是性能管理相关的最主要活动。在系统性能调整之前,必须进行下列准备工作:

  • 识别约束:约束是在寻求更高性能方面不可改变的因素;
  • 指定负载:确定系统的客户端需要的服务,以及需求程度;
  • 设置性能目标:性能目标必须明确,包括识别用于调整的度量标准及其基准值;

一般而言,系统性能调整是以下四个步骤的循环:

  • 收集:使用系统特定部分的性能计数器集合收集数据;
  • 分析:对上一步收集的数据进行分析以确定瓶颈;
  • 配置:由分析结果确定最适合调整的部分并实现此调整,一次仅实现一个配置调整;
  • 测试:完成调整后,进行适当的测试以确定修改带来的影响。

Amdahl解决方案

系统中对某部件采用某种更快执行方式带来的性能收益,取决于此方式被使用的频率,或者占总执行时间的比例。

于是:

加速比=不使用增强部件时的运行时间使用增强部件的运行时间(3)\text{加速比} = \frac {\text{不使用增强部件时的运行时间}} {\text{使用增强部件的运行时间}} \tag{3}

称可以被增强的部件在原执行时间中的比例为加速比,加速比小于1。通过增强的执行方式获得的新的执行时间为

新的执行时间=原执行时间×((1增强比例)+增强比例增强加速比)(4)\text{新的执行时间} = \text{原执行时间} \times ((1 - \text{增强比例}) + \frac {\text{增强比例}} {\text{增强加速比}}) \tag{4}

可以根据上式容易推出总的加速比。

负载均衡

使用多台服务器以对称的方式组成服务器集合,每台服务器的地位等价,都可以单独对外提供服务而无需其他服务器的辅助。常用的负载均衡技术:

  • 基于DNS的负载均衡
  • 代理服务器负载均衡
  • 地址转换网关复杂均衡
  • 协议内部支持负载均衡
  • NAT负载均衡
  • 反向代理负载均衡
  • 混合型负载均衡

性能评估

时钟频率法

  • 时钟周期:时钟频率的倒数;
  • 机器周期:指令的执行划分为多个基本操作,一个基本操作所需的时间为一个机器周期;
  • 指令周期:执行一条指令的时间,由多个机器周期组成

以此计算MIPS(Million Instructions Per Second),作为性能评估的重要指标。

指令执行速度法

常用指标为MFLOPS,即每秒百万次浮点操作次数。用于比较和评价同一系统上使用不同算法求解同一问题的性能。由于没有考虑其他影响因素,因此只能说明特定条件下的浮点运算性能。

等效指令速度法

若记各类指令占用的比例为WiW_i,每一类指令的运行时间为tit_i,那么等效指令的运行时间为:

T=i=1nWiti(5)T = \sum^n_{i=1} W_i t_i \tag{5}

等效指令速度法对复杂指令集不够准确,也会受到数据长度、Cache命中率以及流水线效率的影响。

数据处理速率法

综合理论性能法

基准程序法

以上测试方法主要考虑了CPU的性能,但是没有考虑IO结构、操作系统、编译程序的效率等对性能的影响。基准程序法较好的克服了这些缺点。

常用的基准程序:

  • Khrystone
  • Linpack
  • Whetstone
  • SPEC
  • TPC

基准程序有多种,例如主要测试浮点性能或者整数性能的程序。它的测试目标一般是不同的计算机系统,以提供它们的性能对比。