

# PERF05-BP04 对工作负载进行负载测试
<a name="perf_process_culture_load_test"></a>

 对工作负载进行负载测试，从而验证工作负载能否处理生产负载，并找出任何性能瓶颈。

 **常见反模式：**
+  对工作负载的各个部分进行单独负载测试，而不是测试整个工作负载。
+  在与生产环境不同的基础设施上进行负载测试。
+  只对预期负载而不对其他负载进行负载测试，来预测未来可能会出现问题的方面。
+  没有查阅 [Amazon EC2 Testing Policy](https://aws.amazon.com/ec2/testing/) 并提交“模拟事件提交表”，就执行负载测试。这会导致您的测试无法运行，因为它看起来像是拒绝服务事件。

 **建立此最佳实践的好处：**通过负载测试来衡量性能，可说明随着负载的增加，您将在哪些方面受到影响。这样您便可以在变更影响自己的工作负载之前，对所需进行的变更进行预测。

 **在未建立这种最佳实践的情况下暴露的风险等级：**低 

## 实施指导
<a name="implementation-guidance"></a>

 云端负载测试是在预期用户负载的实际条件下衡量云工作负载性能的过程。这一过程包括：预置类似于生产的云环境，使用负载测试工具生成负载，分析各个指标来评测工作负载处理实际负载的能力。必须使用生产数据的合成或净化版本（删除敏感信息或身份识别信息）运行负载测试。作为交付管道的一部分，自动执行负载测试，并将结果与预定义的 KPI 和阈值进行比较。这一过程有利于您持续实现所需的性能。

### 实施步骤
<a name="implementation-steps"></a>
+ **定义测试目标：**确定待评估工作负载的性能方面，例如吞吐量和响应时间。
+ **选择测试工具：**选择并配置适合工作负载的负载测试工具。
+ **设置环境：**根据生产环境设置测试环境。您可以使用 AWS 服务来运行生产规模的环境，进而测试架构。
+ **实施监控：**使用 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 等监控工具，收集架构中各个资源的指标。您还可以收集和发布自定义指标。
+ **定义场景：**定义负载测试场景和参数（如测试持续时间和用户数量）。
+ **执行负载测试：**大规模执行负载测试场景。利用 AWS 云 来测试工作负载，发现工作负载的哪些部分无法扩展或者是否以非线性方式扩展。例如，您可以使用竞价型实例以很低的成本生成负载，并在投入生产前发现瓶颈。
+ **分析测试结果：**对结果进行分析，确定性能瓶颈和需要改进的地方。
+ **记录和分享调查发现：**记录并报告调查发现和建议。与利益相关方共享此信息，协助他们就性能优化策略做出明智的决策。
+ **持续迭代：**应定期执行负载测试，尤其是在系统更改更新之后。

## 资源
<a name="resources"></a>

 **相关文档：**
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 
+  [AWS 上的分布式负载测试](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/welcome.html) 

 **相关视频：**
+ [AWS Summit ANZ 2023: Accelerate with confidence through AWS Distributed Load Testing](https://www.youtube.com/watch?v=4J6lVqa6Yh8)
+ [AWS re:Invent 2022 - Scaling on AWS for your first 10 million users](https://www.youtube.com/watch?v=yrP3M4_13QM)
+  [Solving with AWS Solutions: Distributed Load Testing](https://www.youtube.com/watch?v=Y-2rk0sSyOM) 
+ [AWS re:Invent 2021 - Optimize applications through end user insights with Amazon CloudWatch RUM](https://www.youtube.com/watch?v=NMaeujY9A9Y)
+  [Demo of Amazon CloudWatch Synthetics](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **相关示例：**
+  [AWS 上的分布式负载测试](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 