

# PERF01-BP06 对现有工作负载进行基准测试
<a name="perf_performing_architecture_benchmark"></a>

 对现有工作负载的性能进行基准测试，以了解工作负载在云上的运行情况。使用从基准测试中收集的数据来推动架构决策。 

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

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

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

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

 **常见反模式：** 
+  您可以依赖于不表示工作负载特性的常见基准。 
+  您依赖客户反馈和看法，将其作为唯一的基准。 

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

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

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

 在开发期间监控性能：实施可以让您在工作负载的发展期间了解其性能的流程。 

 集成到您的交付管道：在您的交付管道中自动运行负载测试。将测试结果与预先定义的关键性能指标 (KPI) 和阈值进行比较，以确保您继续满足性能要求。 

 测试用户体验：使用合成或净化版本的生产数据（删除敏感信息或身份识别信息）进行负载测试。在应用程序中大规模使用重演或预先编程的用户体验，从而演练整个架构。 

 真实用户监控：使用 CloudWatch RUM 帮助您收集和查看有关应用程序性能的客户端数据。使用这些数据来帮助建立您的真实用户性能基准。 

## 资源
<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 知识中心](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) 

 **相关视频：** 
+  [Amazon Builders’ Library 简介 (DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [这就是我的架构](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [通过 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) 