Application Architecture Guide 2.0 (Chapter 7: Quality Attributes) Part 4

性能

性能是指系统在指定时间执行特定动作的响应情况,可通过系统的吞吐量或响应延迟来进行衡量。延迟是系统响应事件所需要的时间,而吞吐量是指在指定时间范围内系统响应事件的数量。影响系统性能的因素包括具体的执行请求以及系统对请求的响应。

关键问题

l 增加了客户端响应时间,减少吞吐量以及服务器资源的过度利用。

l 增加内存消耗导致性能下降,无法找到缓存数据,增加数据存储访问。

l 增加数据库服务的处理可能会导致吞吐量下降。

l 提高网络带宽消耗可能会导致响应时间延迟,增加客户端和服务器系统的负载。

l 使用低效的查询或获取部分数据的时候的查出所有数据,可能会给数据库服务器带来不必要的负担,最终导致不能达到性能指标,以及成本预算过剩。

l 资源管理不善会导致系统创建资源的多个实例,带来与此相应的连接开销,增加了应用程序的响应时间。

关键决策

l 如何决定采用何种缓存策略。

l 如何在层之间设计一个高效的通讯模型。

l 如何选择有效的事务,锁,线程,和队列的类型。

l 如何构建应用程序。

l 如何有效的管理资源。

关键技术

l 选择适当的远程通信机制。

l 设计粗粒度接口,执行特定的任务时需要执行的调用数量最低(最好只有一次)。

l 尽量减少在网络上发送的数据量。

l 使用批处理方式减少在网络上的调用。

l 减少跨边界的数据传输。

l 考虑使用异步通讯机制。

可靠性

可靠性是指系统可持续无故障运行的能力。系统的可靠性能够通过在预期时间内正常执行系统功能的时间比例进行衡量,提高系统的可靠性同时也会带来系统安全性的提升,因为它有助于阻止恶意用户导致的系统故障。

关键问题

l 系统可能会崩溃。

l 系统可能会无响应。

l 输出不一致。

l 系统,网络,数据库不可用以及因其他外部因素导致的系统故障。

关键决策

l 如何处理不可靠的外部系统。

l 如何检测系统故障并能够自动启动故障转移。

l 如何在极端情况下重定向负载。

l 如何在系统脱机的情况下保留请求队列。

l 通讯失败如何处理。

l 事务失败如何处理。

关键技术

l 实现监测功能,如事件与性能计数器,用来监测系统状态变化,并将这些变化通过标准的系统工具(如事件日志、追踪文件、WMI)记录下来。

l 记录系统调用其他系统与服务的性能和审计信息。

l 考虑使用配置设置来改变应用系统工作方式。这些工作如系统切换到不同的服务,故障转移到另一个系统、访问备用或备份系统。

l 考虑当对现有系统的请求失败若干次后,使用替代系统的实现代码。

l 实现存储/转发或基于消息缓存的通信系统,当系统不可用时,发往系统的请求能够保存下来,在联机时重新处理这些请求。

l 考虑使用Windows消息队列或Microsoft BizTalk服务器提供可靠的异步请求机制。

原文地址:https://www.cnblogs.com/xinyan/p/1658843.html