性能工程:如何避免系统崩溃
为何性能如此重要? 业务应用程序因为性能问题出现故障可能非常严重。后果包括: 品牌受损、 服务中断、 客户抱怨、 审查不良。 迁移到云端是否会有所帮助? 云服务(包括亚马逊云计算服务、Azure 和 GCP)支持纵向和横向扩展,在管理异常高的需求时提供灵活性。那么,为何不将你的服务迁移到云平台、实施自动扩展,到此为止呢? 《基于云的服务必须与数据中心系统一样全面地测试性能。》对于确保在激活自动扩展技术之前可用的服务正常运行,然后验证自动扩展是否按预期工作来说,这是必要的。否则,你可能会面临成本变高、性能固化以及客户抱怨的后果。 什么是性能测试? 传统上,性能测试工具用于识别应用程序和系统中的分界点和容量限制。然后将结果用于调试应用程序并调整环境。 测试可以着重于: 用户观察到的交易响应时间,例如购买小部件需要多长时间? 应用程序在测量的时间段内支持多少交易,例如“应用程序每分钟需要支持 1000 次小部件购买交易,其中 90% 的响应时间为 4 秒”的业务需求 需要对系统和应用程序日志以及性能计数器进行详细分析,以确定应用程序运行速度低于预期的原因;服务器报告低百分比 CPU 繁忙可能不是一个健康的迹象,因为这可能是其他地方出现瓶颈的结果,例如网络缓慢或配置错误。 性能工程怎么样? 通过在单元级别将给定组件的效率与其理论最大性能进行比较,并根据需要调整实施措施,性能工程可使测试更上一层楼。此处的示例是代码中的数据库锁定方法和排序算法。 为客户调查 Oracle 与 Sybase 使用情况的性能工程分析示例。 那么,什么是解决方案? 在开启自动扩展之前,应对打算与云自动扩展技术一起使用的应用程序和架构进行性能测试,这一点极其重要。原因有两个: 自动扩展可能掩盖潜在的性能问题,导致不必要的基础设施被自动扩展到操作中(并带来相关成本),以及 性能问题(被自动扩展掩盖)可能很快会变成功能性错误,例如超时。 云应用程序用户分布在世界各地,应使用代表所有用户位置的方法进行性能测试。这对于传统性能测试工具来说是一个问题,它们还没有准备好支持云互联网测试。但是,当前的工具(例如 Micro Focus LoadRunner Cloud)允许性能工程师使用在选定国际地区生成的用户负载来配置测试,以模拟位于世界各地的用户。...