

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

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

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

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

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

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

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

### 实施步骤
<a name="implementation-steps"></a>
+  根据生产环境设置测试环境。您可以使用 AWS 服务来运行生产规模的环境，进而测试架构。 
+  选择和配置适合您工作负载的负载测试工具。 
+  定义负载测试场景和参数（如测试持续时间和用户数量）。 
+  大规模执行测试场景。利用 AWS Cloud 来测试工作负载，发现工作负载的哪些部分无法扩展或者是否以非线性方式扩展。例如，您可以使用竞价型实例以很低的成本生成负载，并在投入生产前发现瓶颈。 
+  监控和记录性能指标（如吞吐量和响应时间）。Amazon CloudWatch 可以收集架构中各种资源的指标。您也可以收集和发布自定义指标，用于显示业务指标或派生指标。 
+  对结果进行分析，确定性能瓶颈和需要改进的地方。 
+  记录和报告负载测试过程和结果。 

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

 **相关文档：** 
+  [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [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) 

 **相关视频：** 
+  [Solving with AWS Solutions: Distributed Load Testing](https://www.youtube.com/watch?v=Y-2rk0sSyOM) 
+  [Optimize applications through Amazon CloudWatch RUM](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Amazon CloudWatch Synthetics 演示](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

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