

# PERF01-BP06 使用基准测试来推动制定架构决策
<a name="perf_architecture_use_benchmarking"></a>

 对现有工作负载的性能进行基准测试，从而了解工作负载在云中的表现情况，并根据这些数据推动制定架构决策。 

 **常见反模式：** 
+  您启用普通的基准测试，而这些基准测试并不能反映出工作负载的特征。 
+  您将客户反馈和看法作为唯一的基准。 

 **建立此最佳实践的好处：** 对您的当前实施进行基准测试，以便衡量性能改进情况。 

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

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

 结合使用基准测试与综合测试，评估工作负载组件的性能。相比负载测试，基准测试通常可以更快速地设置，适用于评估特定组件的技术。基准测试通常在新项目开始时进行，因为此时您还没有用于进行负载测试的完整解决方案。 

 您可以构建自己的自定义基准测试，也可以使用行业标准测试（如 [TPC-DS](http://www.tpc.org/tpcds/)），来对您的工作负载进行基准测试。行业基准测试适用于比较不同的环境。对于架构中的特定操作类型，自定义基准测试十分有用。 

 进行基准测试时，为了确保获得有效的结果，预热您的测试环境尤为重要。多次运行同一基准测试，确保捕获一段时间内的所有差异。 

 由于基准测试运行速度通常比负载测试快，它们可以在部署管道的早期使用，并能更快地提供有关性能偏差的反馈。当您评估一个组件或服务的重要更改时，您可以使用基准测试快速了解您是否有合理的理由来执行更改。结合使用基准测试与负载测试这一点很重要，因为负载测试会告诉您工作负载在生产环境中的表现如何。 

### 实施步骤
<a name="implementation-steps"></a>
+  定义指标（如 CPU 利用率、延迟或吞吐量）来评估工作负载性能。 
+  确定并设置适合您工作负载的基准测试工具。您可以使用 AWS 服务（如 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)）或与您的工作负载兼容的第三方工具。 
+  执行基准测试并在测试期间监控指标。 
+  分析并记录基准测试结果，找出任何瓶颈和问题。 
+  利用测试结果制定架构决策并调整工作负载。这可能包括更改服务或采用新功能。 
+  调整后重新测试工作负载。 

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

 **相关文档：** 
+  [AWS Architecture Center](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 解决方案库](https://aws.amazon.com/solutions/) 
+  [AWS Knowledge Center](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [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) 

 **相关视频：** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [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://github.com/aws-samples) 
+  [AWS 开发工具包示例](https://github.com/awsdocs/aws-doc-sdk-examples) 
+  [分布式负载测试](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 
+  [使用 Amazon CloudWatch Synthetics 测量页面加载时间](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Amazon CloudWatch RUM Web 客户端](https://github.com/aws-observability/aws-rum-web) 