Performance Metrics(性能指标)
在我们开始旅行本书之前,我必须先了解本书的性能指标和希望优化后的结果,在第二章中,我们探索更多的性能检测工具和性能指标,可是,您得会使用这些工具和明白这些性能指标的意义。
由于业务场景的不同和操作方式的不同,应用程序的性能指标情况也不一相同。有时,我们的应用程序规定了重要的性能指标,如webserver需要承受数百万用户的并发请求而建立了服务集群和系统均衡负载,以保证应用体系的架构可伸缩的,但是我们看到无数的例子是应用程序重新设计以后,run压力测试通过后在生产环境应用时确失败了。
在我们的经验看来,帮组您了解系统的性能目标和环境限制并提高性能,我们有在过去几年中解决这些问题的列子:
我们发现一个web服务器数据托管中心的严重的性能问题,测试工程师使用数据中心4mbps共享造成了延迟,他们不了解关键性能指标,他们浪费了很多时间在调试实际上是完美运作的web服务器性能问题上,我们能在提高性能并在富UI应用上进行调优,我们重新调整了 CLR\GC的时间分配,优化了UI滞后。我们为了提高编译效率,解决了微软一个磁盘驱动程序缺陷。我们通过优化wcf序列化机制,挺高了消息交换90%的时间,为了提高可伸缩性,我们通过优化应用程序之间的依赖关系大大减少了其启动时间。
这些例子从低功耗的触摸设备到高功耗的图形处理器通过数据中心展示微妙的交互性特征,在这一章中,我们简要的探究典型现代软件的性能指标和目标,下一章中我们将介绍软件性能测量标准以及如何提高应用程序的性能。
Performance Goals(性能目标)
应用程序的性能目标取决于其所服务的领域和服务的生命周期,当我们完成需求分析的时候,我们应该有一个清晰的性能目标,我们简单的介绍几个性能目标的指导方针,这些案例可能适用于您的应用软件。
首先,请看下面这些没有良好性能的例子:
- 当很多用户同时访问购物车时
- 用户分配不合理的内存
- 单个服务器查询很快,但是多个服务器查询则负载至满
开发人员一般过于主观的解锁性能目标会和团队的其他人员难以达成共识,业务分析师认为100000个并发是合理的,而技术团队知道可用的硬件无法支持这个并发,开发人员可以考虑500ms的延迟响应,而UI体验专家则认为这是不合理的,性能目标表示为可量化的性能指标,良好的性能指标包括:
- web一面响应时间不应该超过300ms
- 购物车应该支持5000个并发
- 每个用户的session分配的内存不应该超过4kb
- 数据库服务器的I/O不应该超过70%,在不超过10台应用服务器访问的情况下响应时间不应该超过75ms。
我们简单的列了一个性能目标的表格
当我们明确性能目标以后,我们的测试盒性能优化工作才能得以进行,在下一章中,我们将讨论如何建立测试环境和熟悉性能指标。