开启OSS加速器后,您可以将需要重复读取的数据缓存在加速器中。当大数据计算向OSS加速器请求数据时,加速器根据空间大小提供1.6 Gbps/TB(即200 MBps/TB)的带宽,以满足大数据计算的带宽要求。本文介绍如何在使用OSS加速器时,根据业务需求降低使用成本。
背景
假设您的业务场景中存在日常任务、分析任务以及仿真任务三种任务类型,每种任务需要的带宽以及任务启动时间存在差异。任务带宽以及启动时间说明如下:
带宽使用 | 18:00 | 19:00 | 20:00 |
---|---|---|---|
固定带宽(Gb/s) | 100 | 100 | 100 |
弹性带宽(Gb/s) | 80 | 40 | 90 |
日常任务(Gb/s) | 40 | 20 | 40 |
分析任务(Gb/s) | 40 | 20 | 40 |
仿真任务(Gb/s) | 0 | 0 | 10 |
为简化费用计算过程,以下费用均以20 元/GB/小时为例。
- 采用固定带宽
费用:(100+100+100)GB/小时 x 20 元/GB/小时=6000元
- (推荐)采用弹性带宽
费用:(80+40+90)GB/小时 x 20 元/GB/小时=4200元
- 使用OSS加速器时,OSS会按照申请的加速器配置容量计费,与实际使用容量无关。
例如,您申请了100 GB的带宽,实际使用了50 GB,OSS将按照100 GB计算。
- OSS加速器使用时长不足一小时,按实际使用分钟数统计费用,例如使用时长为20分钟,则按0.33小时计算。
关于OSS加速器的计费说明,请参见OSS加速器费用。
建议
基于以上计费模型得知,如果您可以在需要大量带宽的时间段提升带宽,在日常使用时减少带宽,则可以实现按需使用OSS加速器时,达到优化使用成本的目的。您可以参考以下方案按需调整带宽。
根据任务需求的评估结果进行调整
在可以准确评估任务日常运行时间和带宽需求的情况下,仅需要在任务启动时提高带宽,在任务结束时减少带宽。关于配置OSS加速器容量的具体步骤,请参见设置加速器。
根据实时查询的带宽用量进行调整
在无法准确预估任务日常运行的时间和带宽需求的情况下,可以通过OSS控制台或云监控实时查询当前的带宽,然后根据监控的带宽用量调整带宽。例如,当前的带宽配置为100 GB,最近15分钟仅使用了20 GB,则考虑适当减少带宽。关于修改OSS加速器容量的具体步骤,请参见修改加速器容量。
您可以通过OSS管理控制台以及云监控SDK查看加速器带宽数据。
- 方式一:通过OSS管理控制台
- 在OSS加速器页面,单击加速器统计数据页签。
- 在加速器统计数据页签,选择OSS加速器名称以及加速器Bucket,然后选择查看最近15分钟、最近30分钟或者自定义起始与结束时间内的加速器带宽数据,并单击搜索。
- 方式二:通过云监控SDK
以下代码用于通过云监控Java SDK查看加速器带宽数据。
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.cms.model.v20190101.DescribeMetricListRequest; import com.aliyuncs.cms.model.v20190101.DescribeMetricListResponse; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson; import java.text.ParseException; public class DescribeMetricListSample { public static void main(String[] args) throws ParseException { // 构建阿里云客户端,用于发起请求。 // 构建阿里云客户端时需要设置AccessKey ID和AccessKey Secret。 DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "AccessKeyId", "AccessKeySecret"); IAcsClient client = new DefaultAcsClient(profile); // 构建请求。 DescribeMetricListRequest request = new DescribeMetricListRequest(); request.setRegionId("cn-hangzhou"); /* CacheRecv:流入(上传)数据量(单位为Byte) CacheSendBandwidth:流入带宽(单位为bps) CacheSend:流出(下载)流量(单位为Byte) CacheRecvBandwidth:流出带宽(单位为bps) CacheOriginRecv:回源流入(下载)数据量(单位为Byte) CacheOriginRecvBandwidth:回源流入带宽(单位为bps) CacheOriginSend:回源流入(上传)数据量(单位为Byte) CacheOriginSendBandwidth:回源流入带宽(单位为bps) */ request.setMetricName("CacheRecvBandwidth"); request.setNamespace("acs_oss_dashboard"); /* userId: 填写用户的UID。 instanceId:填写加速器名称。 BucketName:填写加速器Bucket。如果不填写该选项,默认查询所有加速器Bucket的带宽数据。 */ //request.setDimensions("{\"userId\":\"187792400570****\",\"instanceId\":\"accelerate-test\",\"BucketName\":\"examplebucket\"}"); request.setDimensions("{\"userId\":\"187792400570****\",\"instanceId\":\"accelerate-test\"}"); try { DescribeMetricListResponse response = client.getAcsResponse(request); System.out.println(new Gson().toJson(response)); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { System.out.println("ErrCode:" + e.getErrCode()); System.out.println("ErrMsg:" + e.getErrMsg()); System.out.println("RequestId:" + e.getRequestId()); } } }
参考通用规则进行调整
您在使用OSS加速器时,可以考虑按照梯度扩容以及快速缩容的模式进行带宽调整。
- 梯度扩容
假设10分钟内当前流量超出最大带宽的90%,建议将最大带宽提高10 Gbps。
- 快速缩容
假设10分钟内当前流量均低于最大带宽的50%,建议减少带宽至当前流量。