REL07-BP04 对工作负载进行负载测试 - AWS Well-Architected Framework

REL07-BP04 对工作负载进行负载测试

采用负载测试方法来衡量扩展活动能否满足工作负载要求。

持续开展负载测试,这一点很重要。负载测试用于发现工作负载的断点并测试工作负载的性能。利用 AWS,您可以轻松设置能够模拟生产工作负载规模的临时测试环境。在云中,您可以根据需要创建一套生产规模等级的测试环境,完成测试,然后停用资源。由于测试环境只需在运行时付费,您模拟真实环境的成本仅为本地测试成本的一小部分。

生产中的负载测试还应该被视为实际试用活动的一部分,因为在客户使用量降低的那几个小时内,在场的所有员工都忙于解读结果与处理任何出现的问题,生产系统承受着很大的压力。

常见反模式:

  • 对与您的生产采用不同配置的部署执行负载测试。

  • 仅对单个工作负载分段(而非整个工作负载)执行负载测试。

  • 使用请求子集,而不是具有代表性的实际请求集执行负载测试。

  • 对超出预期负载的较小安全系数执行负载测试。

建立此最佳实践的好处: 您知道架构中哪些组件会在负载下失败,而且能够确定要监控哪些可指示您即将达到该负载的指标,从而及时解决问题,防止故障影响。

未建立这种最佳实践的情况下暴露的风险等级:

实施指导

  • 执行负载测试,确定工作负载的哪些方面表明您必须添加或移除容量。负载测试应具有您在生产中接收的流量类似的代表性流量。增加负载,同时监视所有已检测指标,以便确定哪种指标指示何时必须添加或移除资源。

    • AWS 上的分布式负载测试:模拟数千个连接的用户

      • 确定请求组合。您可能拥有不同的请求组合,因此应当在确定流量组合时查看不同的时间范围。

      • 实施负载驱动程序。您可以使用自定义代码、开源或商用软件来实施负载驱动程序。

      • 最初使用小容量进行负载测试。通过将负载降低到较小容量(可能小到一个实例或容器),可能会有立竿见影的效果。

      • 针对更大的容量进行负载测试。分布式负载的效果会有所不同,因此您必须对尽量接近生产环境的目标进行测试。

资源

相关文档: