

# 最佳实践设计模式：优化 Amazon S3 性能
<a name="optimizing-performance"></a>

当从 Amazon S3 上传和检索存储时，您的应用程序可以轻松地实现每秒数千个事务的请求性能。Amazon S3 自动扩展到高请求速率。例如，您的应用程序可以实现每秒每个分区的 Amazon S3 前缀至少 3500 个PUT/COPY/POST/DELETE 或 5500 个 GET/HEAD 请求。对存储桶中的前缀数量没有限制。您可以通过使用并行来增加读取或写入性能。例如，如果您在 Amazon S3 存储桶中创建 10 个前缀以并行处理读取，则可以将读取性能扩展到每秒 55,000 个读取请求。同样，您可以通过写入多个前缀来扩展写入操作。在读写操作的情况下，扩展是逐渐发生的，而不是瞬时完成的，实际性能将根据您的特定工作负载特征、使用规律和系统配置而有所不同。当 Amazon S3 扩展到新的更高请求速率时，您可能会看到一些 503（减速）错误。扩展完成后，这些错误将消失。有关创建和使用前缀的更多信息，请参阅[使用前缀组织对象](using-prefixes.md)。

Amazon S3 上的某些数据湖应用程序对于运行超过 PB 级数据的查询扫描数百万或数十亿个对象。这些数据湖应用程序实现的单一实例传输速率可最大限度地提高 [Amazon EC2](https://docs.amazonaws.cn/ec2/index.html) 实例的网络接口利用率，这在单一实例上可高达 100 Gb/s。然后，这些应用程序跨多个实例聚合吞吐量，以获得每秒多个 Tb 的级别。

另外一些应用程序对延迟很敏感，例如社交媒体消息传递应用程序。这些应用程序可实现一致的小对象延迟（对于较大对象，为第一个字节输出延迟），延迟时间大约为 100 - 200 毫秒。

其他 Amazon 服务也可帮助加快不同应用程序架构的性能。例如，如果您希望通过单一 HTTP 连接实现较高的传输速率，或需要单一位毫秒延迟，请使用 [Amazon CloudFront](https://docs.amazonaws.cn/cloudfront/index.html) 或 [Amazon ElastiCache](https://docs.amazonaws.cn/elasticache/index.html) 以通过 Amazon S3 进行缓存。

此外，如果您希望在客户端与 S3 存储桶之间获得较快的长距离数据传输速度，请使用 [使用 Amazon S3 Transfer Acceleration 配置快速、安全的文件传输](transfer-acceleration.md)。Transfer Acceleration 使用 CloudFront 中的全球分布式边缘站点来加快跨地理距离的数据传输。如果 Amazon S3 工作负载使用具有 Amazon KMS 的服务器端加密，请参阅《Amazon Key Management Service 开发人员指南》中的 [Amazon KMS 限制](https://docs.amazonaws.cn/kms/latest/developerguide/limits.html)，以获取有关使用案例支持的请求速率的信息。

下面的主题介绍的最佳实践准则和设计模式用于优化使用 Amazon S3 的应用程序的性能。有关对 Amazon S3 进行性能优化的最新信息，请参阅 [Amazon S3 的性能准则](optimizing-performance-guidelines.md) 和 [Amazon S3 的性能设计规律](optimizing-performance-design-patterns.md)。

**注意**  
有关将 Amazon S3 Express One Zone 存储类与目录存储桶配合使用的更多信息，请参阅 [S3 Express One Zone](directory-bucket-high-performance.md#s3-express-one-zone) 和[使用目录存储桶](directory-buckets-overview.md)。

**Topics**
+ [Amazon S3 的性能准则](optimizing-performance-guidelines.md)
+ [Amazon S3 的性能设计规律](optimizing-performance-design-patterns.md)

  
