开启OSS加速器后,您可以将需要重复读取的数据缓存在加速器中。当向OSS加速器请求数据时,加速器根据空间大小提供1.6 Gbps/TB(即200 MBps/TB)的带宽,以满足下载时对带宽的需求。本文介绍如何在使用OSS加速器时,根据业务需求降低使用成本。
背景
假设您的业务场景中存在日常任务、分析任务以及仿真任务三种任务类型,每种任务需要的带宽以及任务启动时间存在差异。任务带宽以及启动时间说明如下:
带宽使用 | 18:00 | 19:00 | 20:00 |
固定带宽(Gbps) | 100 | 100 | 100 |
弹性带宽(Gbps) | 80 | 40 | 90 |
日常任务(Gbps) | 40 | 20 | 40 |
分析任务(Gbps) | 40 | 20 | 40 |
仿真任务(Gbps) | 0 | 0 | 10 |
为简化费用计算过程,以下费用均以20 元/Gbps/小时为例。
重要 使用OSS加速器时,OSS会按照申请的加速器配置容量计费,与实际使用容量无关。
例如,您申请了100 Gbps的带宽,实际使用了50 Gbps,OSS将按照100 Gbps计算。
OSS加速器使用时长不足一小时,按实际使用分钟数统计费用,例如使用时长为20分钟,则按0.33小时计算。
关于OSS加速器的计费说明,请参见OSS加速器费用。
建议
基于以上计费模型得知,如果您可以在需要大量带宽的时间段提升带宽,在日常使用时减少带宽,则可以实现按需使用OSS加速器时,达到优化使用成本的目的。您可以参考以下方案按需调整带宽。
根据任务需求的评估结果进行调整
在可以准确评估任务日常运行时间和带宽需求的情况下,仅需要在任务启动时提高带宽,在任务结束时减少带宽。关于配置OSS加速器容量的具体步骤,请参见设置加速器。
根据实时查询的带宽用量进行调整
在无法准确预估任务日常运行的时间和带宽需求的情况下,可以通过OSS控制台或云监控实时查询当前的带宽,然后根据监控的带宽用量调整带宽。例如,当前的带宽配置为100 Gbps,最近15分钟仅使用了20 Gbps,则考虑适当减少带宽。关于修改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 {
// 构建阿里云客户端前,请确保已设置环境变量AccessKeyId和AccessKeySecret。
private static String acceskeyId = System.getenv("AccessKeyId");
private static String accessKeySecret = System.getenv("AccessKeySecret");
// 构建阿里云客户端,用于发起请求。
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", acceskeyId, 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分钟仅供参考,请结合实际业务场景进行相应替换。