Week1
Why We do Performance Analysis
- The ultimate goal: to obtain or provide the highest performance at the lowest cost.
一些概念
- 系统 (System): Hardware, software
- 评估技术 (Evaluation techniques): Measurement, simulation, analytical modeling
- 指标 (Metrics): Criteria used to quantify system performance
- 工作负载 (Workload): The requests made by the users of the system
- 参数 (Parameters): Include system parameters and workload parameters
Week2
What are Computer Systems?
- A computer system is a basic, complete and functional computer, including all the hardware and software required to make it functional for a user. It should have the ability to receive user input, process data, and with the processed data, create information for storage and/or output.
三大评估技术定义
- 分析建模 (Analytical Modelling): 一种数学建模技术,用于描述、解释和预测系统中涉及的机制和过程 。
- 计算机仿真 (Computer Simulation): 使用计算机来模拟一个系统的动态响应行为 。
- 测量 (Measurement): 收集、分析和报告个体性能信息的实际过程 。

| 评估技术 | 描述 | 适用阶段 | 成本 | 准确性 | 优点 | 缺点 |
|---|---|---|---|---|---|---|
| 分析建模 | 用数学方程(如排队论、优化模型)描述系统。 | 任何阶段 | 低 | 低 | 快速、易于进行权衡分析 | 需要大量简化和假设,可能偏离现实 |
| 仿真 | 用计算机程序模拟系统的行为。(工具如:NS-3, Matlab, Android模拟器) | 任何阶段 | 中 | 中 | 易于修改、比建模更贴近现实、可在实物建造前进行 | 开发耗时、可能无法清晰揭示参数间的权衡关系 |
| 测量 | 在真实或原型系统上直接收集数据。(如:单元测试、压力测试) | 原型建成后 | 高 | 可变 | 最接近真实情况 | 成本高、环境参数多变难以控制、必须有可测系统 |
组合使用策略(非常重要):
- 先用分析模型快速探索大致的参数范围。
- 再用仿真在感兴趣的参数范围内进行详细研究。
- 最后用测量来验证前两种方法得到的结果。
核心思想:在所有结果被验证之前,它们都是不确定的。要警惕违反直觉的结果。
常见指标
- 吞吐量 (Nominal capacity:):单位时间内完成的请求数。(越高越好)
- 响应时间 (Throughput):系统对请求作出反应的时间。(越低越好)
- 可用性:系统正常运行时间的比例。
- 利用率:资源忙碌时间的比例。(名义上最佳,过高可能导致队列堆积,过低表示资源浪费)
- 可靠性:系统无错误运行的概率。
- 可扩展性:系统随负载增加而保持性能的能力。
Week3
Why Simulation?
- 系统尚不存在时:在设计和论证阶段,系统可能还只是一个概念,仿真成为主要的评估手段。
- 比测量更可控:可以轻松地测试在真实世界中难以复现的极端工作负载和系统配置。
- 比分析建模更精确:能够纳入更多细节,减少为了数学便利而做的简化假设。
- 主要缺点:开发一个准确的仿真模型非常耗时,是三种方法中最慢的。
仿真常见陷阱总结
| 陷阱类别 | 核心问题 | 后果 | 最佳实践 / 解决方案 |
|---|---|---|---|
| 过于追求细节 | 认为模型越详细越好,陷入无休止的细节建模。 | 开发时间急剧增加,模型过于复杂难以理解和调试,且额外细节可能对结果无显著影响。 | 采用增量法:从简单模型开始,获得基线结果后进行敏感性分析,仅在关键区域增加细节。 |
| 忽略初始条件 | 仿真开始时系统处于空载或特定状态(瞬态),此阶段数据不具代表性。 | 稳态性能结果(如平均延迟、吞吐量)被初始瞬态数据污染,导致严重偏差。 | 执行瞬态移除:识别并丢弃仿真初始阶段的数据,直到系统进入稳态。 |
| 仿真时间过短 | 为了节省时间而过早结束仿真运行。 | 结果可能仍未脱离瞬态,或因样本量不足而方差过大,无法得到稳定的统计结论。 | 根据期望的置信区间和输出指标的方差确定最小运行时间;进行多次独立重复实验。 |
| 使用劣质随机数 | 使用自编或周期短、分布特性差的随机数发生器。 | 仿真中的随机事件不具有真正的随机性,可能导致结果出现系统性偏差或错误。 |
三种主要仿真类型总结
| 类型 | 核心概念与定义 | 关键特点 | 典型应用场景 |
|---|---|---|---|
| 1. 蒙特卡洛仿真 Monte Carlo Simulation | 一种通过大量随机抽样来求解问题的计算方法,主要用于模拟不随时间变化的概率性系统。 | - 与时间无关 - 基于概率分布进行大量实验 - 结果是统计性的(如均值、概率) | - 估算数值(如估算π值) - 风险评估与财务建模 - 计算复杂积分 - 分析游戏(如赌博)的预期收益 |
| 2. 跟踪驱动仿真 Trace-Driven Simulation | 使用从真实系统采集的、按时间排序的事件记录(即跟踪文件-Trace File)作为输入来驱动仿真模型。 | - 输入数据源自真实测量 - 高可信度与易于验证 - 工作负载准确但可能缺乏代表性 - 复杂性高 | - 计算机体系结构研究(如CPU缓存性能评估) - 文件系统性能分析 - 数据库查询优化 |
| 3. 离散事件仿真 Discrete-Event Simulation (DES) | 模拟系统状态在离散的时间点(即事件-Event发生时刻)发生变化的系统。是计算机科学中最主要的仿真类型。 | - 事件驱动 - 核心是事件调度器 - 使用仿真时钟推进时间 - 系统状态在事件间保持不变 | - 网络协议性能分析(如NS-3) - 队列系统研究(如银行、CPU任务调度) - 物流与供应链建模 |
Week5-Queuing Model
1. 基本概念与结构
排队模型用于描述一个“顾客”到达、等待接受“服务”、然后离开的系统。
- 顾客:不一定是人,可以是数据包、工作任务、打印作业等。
- 队列:不一定是物理队伍,可以是内存中的缓冲区、等待处理的请求队列等。
- 核心结构:
模型的关键组成部分:
- 输入源:顾客的总体。通常假设为无限(如互联网用户),这样计算更简单。
- 排队规则:最常见的规则是先到先服务,但也有基于优先级的调度。
- 服务机制:可以有一个或多个服务台(服务器)。多服务器可以是单队列(效率更高)或多队列(可能负载不均衡)。
2. 性能指标与利特尔定律
我们关心系统的稳态性能,常用指标有:
- :系统中的平均顾客数(包括正在被服务的)。
- :队列中的平均顾客数(不包括正在被服务的)。
- :顾客在系统中的平均时间(包括服务时间)。
- :顾客在队列中的平均等待时间(不包括服务时间)。
利特尔定律 是排队论中最重要的定理,它建立了这些指标间的根本联系:
其中 是平均到达率。 利特尔定律的强大之处在于它无需任何关于到达或服务过程的分布假设,适用于任何稳态系统。
例子:磁盘平均响应时间为0.1秒,请求到达率为100/秒。根据利特尔定律,磁盘中平均请求数为 个。
5. 关键性能指标计算
一旦有了稳态概率 ,我们就可以计算所有关心的性能指标:
- 系统中的平均顾客数:
- 队列中的平均顾客数: (对 k > s 求和,s为服务器数量)
- 服务中的平均顾客数:
- 服务器效率(利用率):
- 有效到达率: (考虑因队列满而拒绝顾客的情况)
最后,再利用利特尔定律计算平均时间:
6. 实例:3服务器系统分析
| State | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|---|
| Component | |||||||
| Probability | 0.068 | 0.170 | 0.212 | 0.177 | 0.147 | 0.123 | 0.102 |
课件通过一个3服务器、系统容量为6的例子,完整演示了如何应用以上理论:
- 给定:, , , 最大容量 。
- 已计算出稳态概率 到 。
- 计算过程:
- 所有服务器空闲的概率:
- 顾客无需等待的概率:
- 顾客必须等待的概率:
- 顾客被拒绝的概率:
- 平均队列长度:
- 平均服务中的顾客数:
- 系统中的总顾客数:
- 服务器效率:
- 有效到达率:
- 平均等待时间:
- 平均系统时间:
Week6
M/M/1 模型:定义与假设
关键参数:
- :平均到达率。
- :平均服务率。
- :利用率或流量强度。系统稳定的必要条件是 (即 ),否则队列会无限增长。

Provided , i.e., Thus:
M/M/1 应用示例:网络网关

- 问题:网关到达率 λ = 125 pps,服务率 μ = 500 pps,ρ = 0.25。
- 分析:
- 个包,。
- 缓冲区溢出概率:如果缓冲区为13个包,溢出概率是系统中有14个或更多包的概率。由于 随 指数下降 (),此概率极小(约 ),可近似为0。
- 满足丢包率要求的缓冲区大小:需要 ,解 可求出所需的最小 。