企业性能测试:体系构建、落地指导与案例解读
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.6 常见的性能效率失效模式及原因

在动态测试过程中可以发现许多不同的性能效率失效模式,以下是一些常见故障(包括系统崩溃)的示例及其典型原因。

1.在所有负载水平下响应缓慢

在某些情况下,无论负载如何,系统响应速度都慢到不可被用户接受。这可能是由底层性能问题引起的,包括但不限于糟糕的数据库设计或实施、网络延迟和其他后台负载问题。这些问题可以在功能性和易用性测试中被发现,而不仅是在性能测试中,因此测试分析师应密切关注并报告它们。

2.中高负载下反应缓慢

在某些情况下,即使负载完全在正常、预期和允许的范围内,系统响应速度仍会随着负载从中度到重度的变化而降低,这是不可令人接受的。原因可能是存在一个或多个资源饱和以及后台负载变化等潜在缺陷。

3.随着时间的推移,响应降低

在某些情况下,随着时间的推移,系统响应速度会逐渐或快速降低。根本原因包括内存泄漏、磁盘碎片增加、随时间增加的网络负载、文件存储量增长以及意外的数据库存储量增长。

4.高负载或超高负载下出错处理不充分或粗暴

在某些情况下,系统的响应速度是可以令人接受的,但其出错处理的性能效率在高负载和超出极限负载水平时会下降。导致这种情况的系统潜在缺陷包括资源池不足、队列和堆栈太小以及超时设置太快。上述常见潜在缺陷的具体示例如下。

❑提供公司服务信息的Web应用程序在7秒内未响应用户请求(其中7秒为一般行业经验),即系统在特定的负载条件下无法达到要求的性能效率。

❑在突然出现大量用户请求时(例如重大体育赛事的门票销售)系统崩溃或无法响应用户输入,这是因为系统处理用户请求的容量不足。

❑当用户提交对大量数据的请求时(例如在网站上发布一份大型而重要的报告以供下载),系统响应会显著降低,这是因为系统处理数据的容量不足。

❑系统在在线处理之前无法完成应该完成的批处理,或对批处理的执行无法在允许时间段内完成。

❑当并行进程对动态内存产生巨大需求而内存无法及时释放时,实时系统会耗尽内存,这可能是因为系统的内存容量不够,或者内存请求的处理优先级设置不当。

❑如果向实时系统组件B提供输入的实时系统组件A无法按要求的速率计算更新,则可能使整个系统无法及时响应而出现故障。面对这种情况,必须评估和修改组件A中的代码模块,即进行性能分析,以确保能够达到要求的更新率。


[1] System and Software Quality Requirements and Evaluation,即系统与软件质量要求和评价。