调整Bucket、RAM用户或者RAM角色的流控示例

将阿里云账号下的多个Bucket添加到同一个资源池后,您可以结合实际业务场景,精细化地调整Bucket及其请求者的流控配置。

前提条件

  • 当前资源池QoS为邀测功能。您在某个地域的OSS性能达到500Gbps及以上,请联系技术支持申请使用。

  • 安装ossutil 2.0

配置示例

示例

说明

限制多个RAM用户访问资源池的带宽

多个请求者(以RAM用户身份)同时访问同一个OSS资源池中的不同Bucket时,您可以通过限制不同RAM用户的带宽上限,避免某个RAM用户过度占用资源池的带宽。

限制RAM用户访问Bucket的带宽

不同业务共享OSS资源池中的同一个Bucket时,您可以通过限制指定RAM用户访问某个Bucket的带宽,避免该RAM用户过度占用该Bucket的带宽。

限制Bucket的总带宽

不同业务访问OSS资源池中的不同Bucket时,您可以通过限制某个Bucket的带宽上限,避免因单一Bucket的高流量操作抢占其他Bucket的带宽资源。

限制Bucket的公网带宽

通过公网访问、预览或者下载存储在OSS资源池的某个Bucket的文件时,会产生下行流量费用。通过限制该Bucket的公网下载带宽,避免高并发访问导致的高额流量费用支出。

限制多个云服务访问Bucket的带宽

应用程序或服务通常以RAM角色实现跨服务访问OSS,通过限制RAM角色访问资源池内指定Bucket的带宽上限,避免某个RAM角色占用过多带宽影响其他服务。

限制多个RAM用户访问资源池的带宽

以下示例用于限制2RAM用户访问资源池的带宽:

  1. RAM用户A设置访问资源池的带宽上限。

    1. 通过本地XML配置文件(qos.xml)为RAM用户A配置访问资源池的带宽上限。

      • 总上传带宽为100Gbps。其中,内网上传带宽为50Gbps,外网上传带宽为50Gbps。

      • 总下载带宽为200Gbps。其中,内网下载带宽为150Gbps,外网下载带宽为50Gbps。

      • QPS、内网和外网QPS均保留默认值-1,表示不限制QPS。

        <QoSConfiguration>
          <TotalUploadBandwidth>100</TotalUploadBandwidth>
          <IntranetUploadBandwidth>50</IntranetUploadBandwidth>
          <ExtranetUploadBandwidth>50</ExtranetUploadBandwidth>
          <TotalDownloadBandwidth>200</TotalDownloadBandwidth>
          <IntranetDownloadBandwidth>150</IntranetDownloadBandwidth>
          <ExtranetDownloadBandwidth>50</ExtranetDownloadBandwidth>
          <TotalQps>-1</TotalQps>
          <IntranetQps>-1</IntranetQps>
          <ExtranetQps>-1</ExtranetQps>
        </QoSConfiguration>
    2. RAM用户A(UID266xxxx)添加以上带宽配置。

      ossutil api invoke-operation --op-name put-resource-pool-requester-qos-info --method PUT --parameters resourcePool=examplepool --parameters qosRequester=266xxxx --parameters requesterQosInfo --body=file://qos.xml
  2. RAM用户B设置访问资源池的带宽上限。

    1. 通过本地XML配置文件(qos.xml)为RAM用户B配置访问资源池的带宽上限。

      • 总上传带宽为50Gbps。其中,内网上传带宽为30Gbps,外网上传带宽为20Gbps。

      • 总下载带宽为50Gbps。其中,内网下载带宽为30Gbps,外网下载带宽为20Gbps。

      • QPS、内网和外网QPS均保留默认值-1,表示不限制QPS。

        <QoSConfiguration>
          <TotalUploadBandwidth>50</TotalUploadBandwidth>
          <IntranetUploadBandwidth>30</IntranetUploadBandwidth>
          <ExtranetUploadBandwidth>20</ExtranetUploadBandwidth>
          <TotalDownloadBandwidth>50</TotalDownloadBandwidth>
          <IntranetDownloadBandwidth>30</IntranetDownloadBandwidth>
          <ExtranetDownloadBandwidth>20</ExtranetDownloadBandwidth>
          <TotalQps>-1</TotalQps>
          <IntranetQps>-1</IntranetQps>
          <ExtranetQps>-1</ExtranetQps>
        </QoSConfiguration>
    2. RAM用户B(UID242xxxx)添加以上带宽配置。

      ossutil api invoke-operation --op-name put-resource-pool-requester-qos-info --method PUT --parameters resourcePool=examplepool --parameters qosRequester=242xxxx --parameters requesterQosInfo --body=file://qos.xml

关于如何查看RAM用户的UID,请参见查看RAM用户信息

限制RAM用户访问Bucket的带宽

以上示例用于限制RAM用户访问资源池内某个Bucket的带宽:

  1. 通过本地XML配置文件(qos.xml)配置指定RAM用户访问资源池内某个Bucket的带宽上限。

    • 总上传带宽为100Gbps。其中,内网和外网上传带宽不限制。

    • 总下载带宽为100Gbps。其中,内网和外网下载带宽不限制。

    • QPS、内网和外网QPS均保留默认值-1,表示不限制QPS。

      <QoSConfiguration>
        <TotalUploadBandwidth>100</TotalUploadBandwidth>
        <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
        <ExtranetUploadBandwidth>-1</ExtranetUploadBandwidth>
        <TotalDownloadBandwidth>100</TotalDownloadBandwidth>
        <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
        <ExtranetDownloadBandwidth>-1</ExtranetDownloadBandwidth>
        <TotalQps>-1</TotalQps>
        <IntranetQps>-1</IntranetQps>
        <ExtranetQps>-1</ExtranetQps>
      </QoSConfiguration>
  2. 为指定Bucket(示例值为examplebucket)的请求者(UID266xxxx)添加以上带宽配置。

    ossutil api invoke-operation --op-name put-bucket-requester-qos-info --method PUT --bucket=examplebucket --parameters requesterQosInfo --parameters qosRequester=266xxxx --body file://qos.xml

限制Bucket的总带宽

以下示例用户限制资源池内指定Bucket的总带宽:

  1. 通过本地XML配置文件(qos.xml)配置资源池内指定Bucket的带宽上限。

    • 总上传带宽为100Gbps。其中,内网和外网上传带宽不限制。

    • 总下载带宽为200Gbps。其中,内网和外网下载带宽不限制。

      <QoSConfiguration>
        <TotalUploadBandwidth>100</TotalUploadBandwidth>
        <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
        <ExtranetUploadBandwidth>-1</ExtranetUploadBandwidth>
        <TotalDownloadBandwidth>200</TotalDownloadBandwidth>
        <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
        <ExtranetDownloadBandwidth>-1</ExtranetDownloadBandwidth>
      </QoSConfiguration>
  2. 为指定Bucket(示例值为examplebucket)添加以上带宽配置。

    ossutil api invoke-operation --op-name put-bucket-qos-info --method PUT --bucket examplebucket --parameters qosInfo --body=file://qos.xml

限制Bucket的公网带宽

以下示例用于限制资源池内指定Bucket的公网带宽:

  1. 通过本地XML配置文件(qos.xml)配置指定Bucket的公网带宽上限。

    • 总上传带宽为100Gbps。其中,内网上传带宽不限制,外网上传带宽限制为20Gbps

    • 总下载带宽为100Gbps。其中,内网下载带宽不限制,外网下载带宽限制为20Gbps。

      <QoSConfiguration>
        <TotalUploadBandwidth>100</TotalUploadBandwidth>
        <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
        <ExtranetUploadBandwidth>20</ExtranetUploadBandwidth>
        <TotalDownloadBandwidth>100</TotalDownloadBandwidth>
        <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
        <ExtranetDownloadBandwidth>20</ExtranetDownloadBandwidth>
      </QoSConfiguration>
  2. 为指定Bucket(示例值为examplebucket)添加以上带宽配置。

    ossutil api invoke-operation --op-name put-bucket-qos-info --method PUT --bucket examplebucket --parameters qosInfo --body=file://qos.xml

限制多个云服务访问Bucket的带宽

以下示例用于限制CDN以及CPFS服务访问资源池内指定Bucket的带宽:

  1. 限制CDN回源私有Bucket场景下的RAM角色带宽

    您通过资源池的某个Bucket存放了静态资源,并使用CDN加速分发静态资源。为确保CDN可以从您的私有Bucket中正确获取所需的静态文件,需要开启私有Bucket回源功能。启用该功能后,CDN会通过AliyunCDNAccessingPrivateOSSRole这一角色去访问私有Bucket内的资源。

    1. 通过本地XML配置文件(qos.xml)配置该角色访问指定Bucket的带宽上限。

      • 总上传带宽为20Gbps。其中,内网和外网上传带宽不限制。

      • 总下载带宽为40Gbps。其中,内网和外网下载带宽不限制。

      • QPS、内网和外网QPS均保留默认值-1,表示不限制QPS。

        <QoSConfiguration>
          <TotalUploadBandwidth>20</TotalUploadBandwidth>
          <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
          <ExtranetUploadBandwidth>-1</ExtranetUploadBandwidth>
          <TotalDownloadBandwidth>40</TotalDownloadBandwidth>
          <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
          <ExtranetDownloadBandwidth>-1</ExtranetDownloadBandwidth>
          <TotalQps>-1</TotalQps>
          <IntranetQps>-1</IntranetQps>
          <ExtranetQps>-1</ExtranetQps>
        </QoSConfiguration>
    2. 为该角色(角色ID362xxxx)添加访问指定Bucket(示例值为examplebucket)带宽配置。

      ossutil api invoke-operation --op-name put-bucket-requester-qos-info --method PUT --bucket=examplebucket --parameters requesterQosInfo --parameters qosRequester=362xxxx --body file://qos.xml
  2. 限制CPFS访问OSS场景下的RAM角色带宽

    在高性能计算和AI训练场景中,需要频繁从OSS Bucket读取和写入大量的训练数据。为提升数据读写效率,您可以通过CPFS创建数据流动任务,快速将OSS中的数据加载到CPFS。数据加载过程中,CPFS会通过AliyunServiceRoleForNasOssDataFlow这一角色来查询和读写OSS中指定Bucket的数据。

    1. 通过本地XML配置文件(qos.xml)配置该角色访问指定Bucket的带宽上限。

      • 总上传带宽为30Gbps。其中,内网和外网上传带宽不限制。

      • 总下载带宽为50Gbps。其中,内网和外网下载带宽不限制。

      • QPS、内网和外网QPS均保留默认值-1,表示不限制QPS。

        <QoSConfiguration>
          <TotalUploadBandwidth>30</TotalUploadBandwidth>
          <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
          <ExtranetUploadBandwidth>-1</ExtranetUploadBandwidth>
          <TotalDownloadBandwidth>50</TotalDownloadBandwidth>
          <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
          <ExtranetDownloadBandwidth>-1</ExtranetDownloadBandwidth>
          <TotalQps>-1</TotalQps>
          <IntranetQps>-1</IntranetQps>
          <ExtranetQps>-1</ExtranetQps>
        </QoSConfiguration>
    2. 为该角色(角色ID300xxxx)添加访问指定Bucket(示例值为examplebucket)带宽配置。

      ossutil api invoke-operation --op-name put-bucket-requester-qos-info --method PUT --bucket=examplebucket --parameters requesterQosInfo --parameters qosRequester=300xxxx --body file://qos.xml

关于如何查看RAM角色ID的具体操作,请参见查看RAM角色