为了使您的应用程序在OSS上获得最佳性能,建议您遵循以下指导原则。

测量性能指标

根据CPU、网络吞吐量的要求来评估不同的ECS实例规格。有关实例规格的更多信息,请参见ECS实例规格。此外,建议您在测量性能时使用HTTP分析工具查看DNS查询时间、时延和数据传输速度。

水平扩展存储连接

将请求分散在多个连接上是横向扩展性能的常见设计模式。当您构建高性能应用程序时,可将OSS作为一个大的分布式系统,而不是像传统存储服务器那样作为单个网络终端节点。您可以通过向OSS发送多个并发请求来实现最佳性能。将这些请求分散到不同的连接上,可以最大限度地利用阿里云OSS的可访问带宽。OSS对存储空间的连接数没有限制。

指定范围下载

使用GetObject请求中的Range HTTP头,可以从对象中获取指定的字节范围,仅传输指定部分。您可以使用多个并发连接从同一对象中获取不同的字节范围。与针对完整对象的单个请求相比,并发请求有助于实现更高的聚合吞吐量;同时,获取较大对象的较小字节范围还可以缩短您的应用程序在请求中断时的重试时间,例如单次获取的范围大小可以是512 KB或者1 MB(边界要对齐)。详情请参见GetObject

增加重试次数

鉴于阿里云OSS的规模较大,如果第一次请求速度较慢,您可以尝试发送重试请求。您可以通过OSS SDK配置超时和重试值,并根据您应用程序的容错要求进行调整。

将OSS和ECS配置在同一地域

OSS存储空间名称是全局唯一的,您在创建存储空间时必须指定地域,且创建以后不能更改名称和地域。为了优化性能,我们建议您尽可能从同一阿里云地域中的ECS实例访问OSS存储空间,从而降低网络延迟和数据传输成本。详情请参见ECS实例通过OSS内网地址访问OSS资源

使用OSS传输加速功能

OSS的传输加速功能是远距离定期传输GB和TB级大文件的理想选择。OSS利用全球分布的云机房,将全球各地用户对您存储空间的访问,经过智能路由解析至就近的接入点,并使用优化后的网络及协议来访问您的存储空间,可实现超远距离的快速、安全的文件传输。详情请参见传输加速

使用最新版本SDK

OSS SDK开发工具包为多项性能优化的指导原则提供内置支持。OSS SDK提供了一个更简单的应用程序接口,并定期更新以遵循最新的最佳实践。例如,这些开发工具包包含自动对网络错误(客户端错误或者服务端错误)重试请求的逻辑, 以适应不同的网络状况;这些开发工具包还包含高级的传输接口,提供针对大文件的上传或者下载的最佳实践。