目录
一、概念
性能是指在面对特定类型的需求时对系统资源进行管理,以实现可接受的时间行为。(关于时间和软件系统满足时间要求的能力)
当事件发生时(如中断、消息、来自用户或其他系统的请求或标记时间流逝的时钟事件),系统或系统的某些元素必须及时对它们作出响应。描述可能发生的事件(以及它们可能发生的时间)以及系统或元素对这些事件的基于时间的响应的本质是讨论性能。
二、场景
1、通用场景
刺激源 | 系统内部或外部 |
刺激 | 周期性、零星的或随机事件的到来 |
制品 | 系统或系统的一个或多个组件 |
环境 | 运行模式:正常、紧急、峰值负荷、过载。 |
响应 | 处理事件,更改服务级别 |
响应衡量 | 延迟、截止时间、吞吐量、抖动、失效率 |
2、特定场景
用户在正常操作下启动事务。系统处理这些事务的平均延迟时间为2秒。
刺激源 | 用户 |
刺激 | 正常操作下启动事务 |
制品 | 系统 |
环境 | 正常 |
响应 | 处理事件 |
响应衡量 | 延迟时间为2秒 |
三、性能的策略
1、目标
在某些基于时间的约束下对到达系统的事件生成响应。
2、策略
1)控制资源需求(Control Resource Demand)
- 管理采样率(Manage sample rate):减少捕获数据流的采样频率,但是会导致保真度下降。
- 限制事件响应(Limit Event Response):只处理高达一个设定的最大速率的事件,从而确保在实际处理事件时进行更可预测的处理。可能会造成事件丢失,如果不可接受,则必须确保等待队列足够大,能够处理最坏的情况。
- 排序事件优先级(Prioritize Events):事件并非同等重要,实施一个优先级方案。
- 减少开销(Reduce Overhead):使用中介会增加处理事件流的资源消耗,可删除它们会改善延迟。但是对Modifiability有影响。
- 界定执行时间(Bound Execution Time):限制用于响应事件的执行时间。
- 提高资源效率(Increase Resource Efficiency):改进在临界区使用的算法将减少延迟。
2)管理资源(Manage Resources)
- 增加资源(Increase Resources):如更快的处理器、更多处理器、更多内存……
- 维护多个计算副本(Maintain Multiple Copies of Compulation):减少如果所有计算都发生在同一服务器时可能出现的竞争。(负载均衡(load balance):将新工作分配给可用的副本服务器。)
- 维护多个数据副本(Maintain Multiple Copies of Data):在不同访问速度的存储器上保存副本(可能是数据的一个子集,如缓存技术)。
- 界定队列大小(Bound Queue Size):控制到达事件队列的最大数量,从而可以控制处理这些事件的资源。通常与Limit Event Response配合使用。
- 调度资源(Schedule Resources):当存在资源竞争时,需要调度资源。