全部產品
Search
文件中心

Object Storage Service:使用資源集區QoS保障關鍵業務頻寬

更新時間:Dec 26, 2025

預設情況下,阿里雲帳號下同一地區的所有Bucket共用頻寬。當多個Bucket並發傳輸大量資料時,可能因頻寬爭搶導致關鍵業務傳輸延遲。通過配置資源集區QoS流控可解決此問題:閾值流控防止某個Bucket佔用過多頻寬,優先順序流控保障核心業務最小頻寬,兩種方案互補使用,確保重要業務穩定運行。

工作原理

閾值流控

為各層級對象(Bucket、BucketGroup)設定頻寬上限,防止資源過度佔用。

層級關係說明

資源集區層級結構:資源集區內部可以形成多層級的內含項目關聯性,實際情境中可能有以下幾種層級結構。

情境1:純 Bucket 扁平結構

image

情境2:BucketGroup 嵌套

image

情境3:BucketGroup 與 Bucket 混合

image

要求者流控維度(獨立維度):要求者不是資源集區的層級結構成員,而是一個獨立的流控維度。

情境4:要求者流控與資源集區層級流控同時生效

image

流控生效原則

基本原則

資源集區: 最大100Gbps
├─ Bucket A: 最大40Gbps ← 即使空閑,也不能超過40Gbps
├─ Bucket B: 最大30Gbps
└─ Bucket C: 不限制 ← 可使用全部剩餘頻寬

約束規則

  1. 多層級限制同時生效:實際頻寬取所有生效規則的最小值

  2. 下層頻寬之和不能超過上層總頻寬

  3. 要求者維度獨立約束:與資源集區層級約束同時生效,取最小值

樣本

RAM使用者訪問Bucket時,同時受:

  • 要求者限制(20Gbps)← 獨立維度

  • Bucket限制(30Gbps)← 資源集區層級

實際最大頻寬 = min(20Gbps, 30Gbps) = 20Gbps

優先順序流控

在資源集區層面配置3-10個優先順序等級。優先順序等級越大,優先順序越高。為不同優先順序的對象分配保底頻寬,確保高優先順序業務在資源競爭時優先獲得頻寬。如果沒有為對象配置優先順序等級,則使用預設優先順序等級。如果沒有為優先順序等級配置保底頻寬,則使用預設保底頻寬。

核心機制

  1. 保底保障:每個優先順序都有保底頻寬,硬性保證一定可以達到該保底頻寬

  2. 搶佔機制:高優先順序可以搶佔低優先順序超出保底頻寬部分的頻寬,且更高優先順序優先搶佔

  3. 空閑利用:低優先順序也可以使用高優先順序閒置保底頻寬,但較高優先順序優先使用

  4. 配置約束:所有優先順序保底頻寬之和 ≤ 資源集區總頻寬

典型情境

以下情境資源集區總限制100Gbps,優先順序1到優先順序3。

情境1:高優先順序搶佔低優先順序超出保底的頻寬

各優先順序保底20Gbps,優先順序1需求10Gbps,優先順序2需求30Gbps,優先順序3需求80Gbps。

優先順序

保底

需求

實際分配

說明

優先順序3

20Gbps

80Gbps

70Gbps

獲得保底20 + 搶佔優先順序1閒置10 + 資源集區剩餘40

優先順序2

20Gbps

30Gbps

20Gbps

獲得保底20,額外需求被優先順序3搶佔

優先順序1

20Gbps

10Gbps

10Gbps

按需分配10,空閑保底10被優先順序3搶佔

最終分配:10 + 20 + 70 = 100Gbps

情境2:更高優先順序優先搶佔

各優先順序保底25Gbps,優先順序1需求0Gbps,優先順序2需求5Gbps,優先順序3需求40Gbps,優先順序4需求60Gbps。

優先順序

保底

需求

實際分配

說明

優先順序4

25Gbps

60Gbps

60Gbps

獲得保底25 + 高優先順序搶佔35

優先順序3

25Gbps

40Gbps

35Gbps

獲得保底25 + 次優先搶佔剩餘的10

優先順序2

25Gbps

5Gbps

5Gbps

需求小於保底,按需分配5

優先順序1

25Gbps

0Gbps

0Gbps

需求小於保底,按需分配0

最終分配:0 + 5 + 35 + 60 = 100Gbps

情境3:保底之和小於總頻寬

各優先順序保底10Gbps(總和40Gbps),優先順序1需求50Gbps,優先順序2需求50Gbps,優先順序3需求30Gbps,優先順序4需求20Gbps。

優先順序

保底

需求

實際分配

說明

優先順序4

10Gbps

20Gbps

20Gbps

最高優先順序,需求全滿足

優先順序3

10Gbps

30Gbps

30Gbps

次高優先順序,需求全滿足

優先順序2

10Gbps

50Gbps

40Gbps

獲得保底10 + 剩餘30

優先順序1

10Gbps

50Gbps

10Gbps

僅獲得保底,額外需求被搶佔

最終分配:10 + 40 + 30 + 20 = 100Gbps

兩種流控配合使用

對每個流控資源需要同時考慮閾值流控上限、優先順序流控保底和實際需求的多維度影響。

生效原則

  • 閾值流控上限是硬限制:無論保底多高,最終不能超過閾值上限

  • 優先順序保底是軟保障:在閾值上限範圍內盡量滿足保底

配置樣本

正常配置

Bucket A 同時配置:

  • 優先順序流控:保底50Gbps ← 優先順序維度

  • 閾值流控:最大80Gbps ← 資源集區層級

結果:Bucket A 可用頻寬為 50-80Gbps(至少50,最多80)

配置衝突

Bucket A 同時配置:

  • 優先順序流控:保底80Gbps ← 優先順序維度

  • 閾值流控:最大50Gbps ← 資源集區層級

結果:Bucket A 實際可用頻寬為 50Gbps(閾值流控上限優先,而不是80Gbps)

申請資源集區

當阿里雲帳號下某個地區的頻寬達到400 Gbps或以上時,可聯絡支援人員申請建立資源集區、控制台使用資源集區以及優先順序流控。

提交工單時需提供以下資訊:

重要

單個資源集區內的Bucket需滿足同一使用者、同一地區且相同冗餘類型。建立資源集區過程中可能存在資料移轉與資源騰挪。

地區:華東1(杭州)
資源集區名稱:qos-resource-pool-1
Bucket列表:qos-examplebucket-1, qos-examplebucket-2
總上傳頻寬:300 Gbps
內網上傳頻寬:100 Gbps
外網上傳頻寬:200 Gbps
總下載頻寬:100 Gbps
內網下載頻寬:50 Gbps
外網下載頻寬:50 Gbps
控制台使用資源集區:需要
優先順序流控:需要

配置閾值流控

適合需要限制頻寬上限,防止某個對象佔用過多資源的情境。

配置Bucket頻寬上限

防止某個Bucket流量過大影響其他Bucket。

控制台

資源集區QoS頁面,單擊目標資源集區名稱,然後單擊資源集區內目標Bucket右側的修改流控配置,按照以上要求設定Bucket頻寬。

ossutil

使用前,需安裝ossutil

  1. 通過本地XML設定檔(qos.xml)配置指定Bucket的頻寬上限。

    <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
  3. 查看Bucket的頻寬配置。

    ossutil api invoke-operation --op-name get-bucket-qos-info --method GET --bucket examplebucket --parameters qosInfo

SDK

目前僅支援通過Python SDK V2和Go SDK V2為Bucket設定頻寬上限。

  1. 通過本地qos.xml檔案配置Bucket的頻寬上限。

    <QoSConfiguration>
      <TotalUploadBandwidth>100</TotalUploadBandwidth>
      <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>20</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>100</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>20</ExtranetDownloadBandwidth>
    </QoSConfiguration>
  2. 為指定Bucket設定以上頻寬配置。

    import alibabacloud_oss_v2 as oss
    
    def PutBucketQoSInfo():
       # 從環境變數中載入憑證資訊,用於身分識別驗證
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
    
        # 載入預設配置並擷取設定物件
        cfg = oss.config.load_default()
    
        # 設定憑證提供者
        cfg.credentials_provider = credentials_provider
    
        # 填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為cn-hangzhou
        cfg.region = "cn-hangzhou"
    
        # 使用設定物件初始化OSS用戶端
        client = oss.Client(cfg)
    
        # 初始化qos_xml_body為空白字串
        qos_xml_body = ""
    
        # 開啟名為'qos.xml'的檔案,並讀取其中的內容到qos_xml_body變數中
        with open('qos.xml', 'r') as qos_file:
            qos_xml_body = qos_file.read()
    
        # 構造一個操作輸入請求對象,用於設定儲存空間的QoS資訊
        req = oss.OperationInput(
            op_name = 'PutBucketQoSInfo',  # 操作名稱,這裡是指定設定儲存空間QoS資訊的操作
            method = 'PUT',  # HTTP方法類型,此處為PUT,表示更新資源
            parameters = {
                'qosInfo': '',  # 這裡是參數列表,指定要設定的是QoS資訊
            },
            headers = None,  # 要求標頭資訊,如果不需要特殊設定則可以為None
            body = qos_xml_body,  # 請求體,包含之前從'qos.xml'檔案讀取的內容
            bucket = 'examplebucket',  # 目標儲存空間的名稱
        )
    
        # 調用用戶端的invoke_operation方法執行請求,並接收響應
        resp = client.invoke_operation(req)
    
        # 列印響應的狀態代碼
        print(resp.status_code)
    
        # 列印響應的頭部資訊
        print(resp.headers)
        
    if __name__ == "__main__":
        PutBucketQoSInfo()

API

調用PutBucketQoSInfo按以下樣本限制Bucket頻寬。

<QoSConfiguration>
  <TotalUploadBandwidth>100</TotalUploadBandwidth>
  <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
  <ExtranetUploadBandwidth>20</ExtranetUploadBandwidth>
  <TotalDownloadBandwidth>100</TotalDownloadBandwidth>
  <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
  <ExtranetDownloadBandwidth>20</ExtranetDownloadBandwidth>
</QoSConfiguration>

配置Bucket要求者頻寬上限

RAM使用者

多個業務共用同一個Bucket,需要限制某個RAM使用者的頻寬,避免其過度佔用。

控制台

  1. 查看RAM使用者ID

  2. 資源集區QoS頁面,單擊目標資源集區名稱,然後單擊資源集區內目標Bucket右側的配置要求者流控,按照以上要求設定RAM使用者訪問Bucket的頻寬。

ossutil

使用前,需安裝ossutil

以下樣本用於限制RAM使用者訪問資源集區內某個Bucket的頻寬:

  1. 通過本地XML設定檔(qos.xml)配置指定RAM使用者訪問資源集區內某個Bucket的頻寬上限。

    <QoSConfiguration>
      <TotalUploadBandwidth>100</TotalUploadBandwidth>
      <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>-1</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>100</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>-1</ExtranetDownloadBandwidth>
    </QoSConfiguration>
  2. 查看RAM使用者ID

  3. 為訪問Bucket(樣本值為examplebucket)的RAM使用者(UID為266xxxx)添加以上頻寬配置。

    ossutil api invoke-operation --op-name put-bucket-requester-qos-info --method PUT --bucket=examplebucket --parameters requesterQosInfo --parameters qosRequester=266xxxx --body file://qos.xml
  4. (可選)擷取該RAM使用者訪問資源集區內某個Bucket的頻寬配置。

    ossutil api invoke-operation --op-name get-bucket-requester-qos-info --method GET --bucket=examplebucket --parameters requesterQosInfo --parameters qosRequester=266xxxx

SDK

目前僅支援通過Python SDK V2和Go SDK V2限制RAM使用者訪問Bucket的頻寬上限。

  1. 通過本地qos.xml檔案配置指定RAM使用者訪問資源集區內某個Bucket的頻寬上限。

    <QoSConfiguration>
      <TotalUploadBandwidth>100</TotalUploadBandwidth>
      <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>-1</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>100</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>-1</ExtranetDownloadBandwidth>
    </QoSConfiguration>
  2. 查看RAM使用者ID

  3. 為訪問Bucket的RAM使用者佈建以上頻寬配置。

    import alibabacloud_oss_v2 as oss
    
    def PutBucketRequesterQoSInfo():
        # 從環境變數中載入憑證資訊,用於身分識別驗證
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
    
        # 載入預設配置並擷取設定物件
        cfg = oss.config.load_default()
    
        # 設定憑證提供者
        cfg.credentials_provider = credentials_provider
    
        # 填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為cn-hangzhou
        cfg.region = "cn-hangzhou"
    
        # 使用設定物件初始化OSS用戶端
        client = oss.Client(cfg)
    
        # 初始化qos_xml_body為空白字串
        qos_xml_body = ""
    
        # 開啟名為'qos.xml'的檔案,並讀取其中的內容到qos_xml_body變數中
        with open('qos.xml', 'r') as qos_file:
            qos_xml_body = qos_file.read()
    
        # 構造一個操作輸入請求對象,用於設定儲存空間的要求者QoS資訊
        req = oss.OperationInput(
            op_name = 'PutBucketRequesterQoSInfo',  # 操作名稱,這裡是指定設定儲存空間要求者QoS資訊的操作
            method = 'PUT',  # HTTP方法類型,此處為PUT,表示更新資源
            parameters = {
                'requesterQosInfo': '',  # 參數列表,指定要設定的是要求者QoS資訊
                'qosRequester': '2598732222222xxxx',  # 要求者的唯一識別碼,用於區分不同的要求者
            },
            headers = None,  # 要求標頭資訊,如果不需要特殊設定則可以為None
            body = qos_xml_body,  # 請求體,包含之前從'qos.xml'檔案讀取的內容
            bucket = 'examplebucket',  # 目標儲存空間的名稱
        )
    
        # 調用用戶端的invoke_operation方法執行請求,並接收響應
        resp = client.invoke_operation(req)
    
        # 列印響應的狀態代碼
        print(resp.status_code)
    
        # 列印響應的頭部資訊
        print(resp.headers)
    
        # 列印響應的內容(HTTP響應體),通常包含請求返回的具體資料
        print(resp.http_response.content)
    
    if __name__ == "__main__":
        PutBucketRequesterQoSInfo()

API

  1. 查看RAM使用者ID

  2. 調用PutBucketRequesterQoSInfo按以下樣本限制RAM使用者訪問Bucket的頻寬。

    <QoSConfiguration>
      <TotalUploadBandwidth>100</TotalUploadBandwidth>
      <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>-1</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>100</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>-1</ExtranetDownloadBandwidth>
    </QoSConfiguration>

RAM角色

使用Bucket儲存靜態資源並啟用CDN加速。為使CDN能從私人Bucket擷取檔案,需開啟私人Bucket回源。CDN通過RAM角色AliyunCDNAccessingPrivateOSSRole訪問Bucket,需要限制其回源頻寬。

控制台

  1. 查看RAM角色ID

  2. 資源集區QoS頁面,單擊目標資源集區名稱,然後單擊資源集區內目標Bucket右側的配置要求者流控,按照以上要求設定Bucket要求者頻寬。

ossutil

使用前,需安裝ossutil

  1. 通過本地XML設定檔(qos.xml)配置該角色訪問指定Bucket的頻寬上限。

    <QoSConfiguration>
      <TotalUploadBandwidth>100</TotalUploadBandwidth>
      <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>20</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>100</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>40</ExtranetDownloadBandwidth>
    </QoSConfiguration>
  2. 查看RAM角色ID

  3. 為該角色(角色ID為362xxxx)添加訪問指定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
  4. (可選)列舉資源集區所有RAM角色的頻寬配置。

    ossutil api invoke-operation --op-name list-resource-pool-requester-qos-infos --method GET --parameters resourcePool=examplePool  --parameters requesterQosInfo

SDK

目前僅支援通過Python SDK V2和Go SDK V2限制RAM角色訪問Bucket的頻寬上限。

  1. 通過本地qos.xml檔案配置指定RAM使用者訪問資源集區內某個Bucket的頻寬上限。

    <QoSConfiguration>
      <TotalUploadBandwidth>100</TotalUploadBandwidth>
      <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>20</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>100</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>40</ExtranetDownloadBandwidth>
    </QoSConfiguration>
  2. 查看RAM角色ID

  3. 為RAM角色設定以上頻寬配置。

    import alibabacloud_oss_v2 as oss
    
    def PutBucketRequesterQoSInfo():
        # 從環境變數中載入憑證資訊,用於身分識別驗證
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
    
        # 載入預設配置並擷取設定物件
        cfg = oss.config.load_default()
    
        # 設定憑證提供者
        cfg.credentials_provider = credentials_provider
    
        # 填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為cn-hangzhou
        cfg.region = "cn-hangzhou"
    
        # 使用設定物件初始化OSS用戶端
        client = oss.Client(cfg)
    
        # 初始化qos_xml_body為空白字串
        qos_xml_body = ""
    
        # 開啟名為'qos.xml'的檔案,並讀取其中的內容到qos_xml_body變數中
        with open('qos.xml', 'r') as qos_file:
            qos_xml_body = qos_file.read()
    
        # 構造一個操作輸入請求對象,用於設定儲存空間的要求者QoS資訊
        req = oss.OperationInput(
            op_name = 'PutBucketRequesterQoSInfo',  # 操作名稱,這裡是指定設定儲存空間要求者QoS資訊的操作
            method = 'PUT',  # HTTP方法類型,此處為PUT,表示更新資源
            parameters = {
                'requesterQosInfo': '',  # 參數列表,指定要設定的是要求者QoS資訊
                'qosRequester': '2598732222222xxxx',  # 要求者的唯一識別碼,用於區分不同的要求者
            },
            headers = None,  # 要求標頭資訊,如果不需要特殊設定則可以為None
            body = qos_xml_body,  # 請求體,包含之前從'qos.xml'檔案讀取的內容
            bucket = 'examplebucket',  # 目標儲存空間的名稱
        )
    
        # 調用用戶端的invoke_operation方法執行請求,並接收響應
        resp = client.invoke_operation(req)
    
        # 列印響應的狀態代碼
        print(resp.status_code)
    
        # 列印響應的頭部資訊
        print(resp.headers)
    
        # 列印響應的內容(HTTP響應體),通常包含請求返回的具體資料
        print(resp.http_response.content)
    
    if __name__ == "__main__":
        PutBucketRequesterQoSInfo()

API

  1. 查看RAM角色ID

  2. 調用PutBucketRequesterQoSInfo按以下樣本限制RAM角色訪問Bucket的頻寬。

    <QoSConfiguration>
      <TotalUploadBandwidth>100</TotalUploadBandwidth>
      <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>20</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>100</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>40</ExtranetDownloadBandwidth>
    </QoSConfiguration>

配置BucketGroup頻寬上限

將低優先順序Bucket加入BucketGroup統一管理,限制其總頻寬。

控制台

  1. 資源集區QoS頁面,單擊目標資源集區名稱,然後單擊建立BucketGroup,定義BucketGroup名稱並按照要求設定BucketGroup頻寬。

  2. 在目標資源集區頁面,單擊目標Bucket右側的配置BucketGroup,將低優先順序Bucket加入BucketGroup。

ossutil

使用前,需安裝ossutil

  1. scheduled-postsarchived-comments兩個Bucket加入BucketGroup。

    1. scheduled-posts加入BucketGroup。

      ossutil api invoke-operation --op-name put-bucket-resource-pool-bucket-group --method PUT --bucket scheduled-posts --parameters resourcePool=pool-for-ai --parameters resourcePoolBucketGroup=test-group
    2. archived-comments加入BucketGroup。

      ossutil api invoke-operation --op-name put-bucket-resource-pool-bucket-group --method PUT --bucket archived-comments --parameters resourcePool=pool-for-ai --parameters resourcePoolBucketGroup=test-group
    3. (可選)擷取BucketGroup中添加的Bucket列表。

      ossutil api invoke-operation --op-name list-resource-pool-bucket-groups --method GET --parameters resourcePool=pool-for-ai --parameters resourcePoolBucketGroup
  2. 通過本地XML設定檔(qos.xml)配置資源集區內指定BucketGroup的頻寬上限。

    <QoSConfiguration>
      <TotalUploadBandwidth>20</TotalUploadBandwidth>
      <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>10</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>30</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>20</ExtranetDownloadBandwidth>
    </QoSConfiguration>
  3. 為BucketGroup配置頻寬。

    ossutil api invoke-operation --op-name put-resource-pool-bucket-group-qos-info --method PUT --parameters resourcePoolBucketGroupQosInfo --parameters resourcePool pool-for-ai --parameters resourcePoolBucketGroup offline-group --body=file://qos.xml
  4. (可選)擷取BucketGroup的頻寬配置。

    ossutil api invoke-operation --op-name get-resource-pool-bucket-group-qos-info --method GET --parameters resourcePool=pool-for-ai --parameters resourcePoolBucketGroup=offline-group --parameters resourcePoolBucketGroupQoSInfo

SDK

目前僅支援通過Python SDK V2和Go SDK V2限制BucketGroup的頻寬上限。

  1. 將資源集區內的兩個Bucket分別加入BucketGroup。

    import alibabacloud_oss_v2 as oss
    
    def PutBucketResourcePoolBucketGroup():
        # 從環境變數中載入憑證資訊,用於身分識別驗證
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
    
        # 載入預設配置並擷取設定物件
        cfg = oss.config.load_default()
    
        # 設定憑證提供者
        cfg.credentials_provider = credentials_provider
    
        # 填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為cn-hangzhou
        cfg.region = "cn-hangzhou"
    
        # 使用設定物件初始化OSS用戶端
        client = oss.Client(cfg)
    
        # 構造一個操作輸入請求對象,用於將儲存空間添加到指定的資源集區儲存空間組
        req = oss.OperationInput(
            op_name = 'PutBucketResourcePoolBucketGroup',  # 操作名稱,這裡是指定將儲存空間添加到資源集區儲存空間組的操作
            method = 'PUT',  # HTTP方法類型,此處為PUT,表示更新資源
            parameters = {
                'resourcePoolBucketGroup': 'example-group',  # 儲存空間組的唯一識別碼,用於區分不同的儲存空間組
                'resourcePool': 'example-resource-pool',               # 資源集區的唯一識別碼,用於區分不同的資源集區
            },
            headers = None,  # 要求標頭資訊,如果不需要特殊設定則可以為None
            body = None,  # 請求體,由於是PUT請求且無需傳遞額外資料,因此為None
            bucket = 'examplebucket',  # 目標儲存空間的名稱,表示要將該儲存空間添加到指定的資源集區儲存空間組
        )
    
        # 調用用戶端的invoke_operation方法執行請求,並接收響應
        resp = client.invoke_operation(req)
    
        # 列印響應的狀態代碼
        print(resp.status_code)
    
        # 列印響應的頭部資訊
        print(resp.headers)
    
        # 列印響應的內容(HTTP響應體),通常包含請求返回的具體資料
        print(resp.http_response.content)
    
    if __name__ == "__main__":
        PutBucketResourcePoolBucketGroup()
  2. 通過本地XML設定檔(qos.xml)配置資源集區內指定BucketGroup的頻寬上限。

    <QoSConfiguration>
      <TotalUploadBandwidth>20</TotalUploadBandwidth>
      <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>10</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>30</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>20</ExtranetDownloadBandwidth>
    </QoSConfiguration>
  3. 為BucketGroup配置頻寬。

    import alibabacloud_oss_v2 as oss
    
    def PutResourcePoolBucketGroupQoSInfo():
        # 從環境變數中載入憑證資訊,用於身分識別驗證
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
    
        # 載入預設配置並擷取設定物件
        cfg = oss.config.load_default()
    
        # 設定憑證提供者
        cfg.credentials_provider = credentials_provider
    
        # 填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為cn-hangzhou
        cfg.region = "cn-hangzhou"
    
        # 使用設定物件初始化OSS用戶端
        client = oss.Client(cfg)
    
        # 初始化qos_xml_body為空白字串
        qos_xml_body = ""
    
        # 開啟名為'qos.xml'的檔案,並讀取其中的內容到qos_xml_body變數中
        with open('qos.xml', 'r') as qos_file:
            qos_xml_body = qos_file.read()
    
        # 構造一個操作輸入請求對象,用於設定資源集區儲存空間組的QoS資訊
        req = oss.OperationInput(
            op_name = 'PutResourcePoolBucketGroupQoSInfo',  # 操作名稱,這裡是指定設定資源集區儲存空間組QoS資訊的操作
            method = 'PUT',  # HTTP方法類型,此處為PUT,表示更新資源
            parameters = {
                'resourcePoolBucketGroupQosInfo': '',  # 參數列表,指定要設定的是資源集區儲存空間組QoS資訊
                'resourcePool': 'example-resource-pool',           # 資源集區的唯一識別碼,用於區分不同的資源集區
                'resourcePoolBucketGroup': 'example-group',  # 儲存空間組的唯一識別碼,用於區分不同的儲存空間組
            },
            headers = None,  # 要求標頭資訊,如果不需要特殊設定則可以為None
            body = qos_xml_body,  # 請求體,包含之前從'qos.xml'檔案讀取的內容
            bucket = None,  # 目標儲存空間的名稱,這裡不需要指定具體的儲存空間,因此為None
        )
    
        # 調用用戶端的invoke_operation方法執行請求,並接收響應
        resp = client.invoke_operation(req)
    
        # 列印響應的狀態代碼
        print(resp.status_code)
    
        # 列印響應的頭部資訊
        print(resp.headers)
    
        # 列印響應的內容(HTTP響應體),通常包含請求返回的具體資料
        print(resp.http_response.content)
    
    if __name__ == "__main__":
        PutResourcePoolBucketGroupQoSInfo()

API

調用PutResourcePoolBucketGroupQoSInfo按以下樣本限制BucketGroup的頻寬。

<QoSConfiguration>
  <TotalUploadBandwidth>20</TotalUploadBandwidth>
  <IntranetUploadBandwidth>-1</IntranetUploadBandwidth>
  <ExtranetUploadBandwidth>10</ExtranetUploadBandwidth>
  <TotalDownloadBandwidth>30</TotalDownloadBandwidth>
  <IntranetDownloadBandwidth>-1</IntranetDownloadBandwidth>
  <ExtranetDownloadBandwidth>20</ExtranetDownloadBandwidth>
</QoSConfiguration>

配置資源集區要求者頻寬上限

多個RAM使用者訪問同一資源集區的不同Bucket,需要限制各內建寬上限,防止某使用者獨佔資源集區頻寬。

控制台

  1. 查看RAM使用者IDRAM角色ID

  2. 資源集區QoS頁面,單擊目標資源集區名稱。在資源集區要求者列表頁簽,單擊目標RAM使用者或者RAM角色右側的修改流控配置,按照要求設定資源集區要求者頻寬。

ossutil

使用前,需安裝ossutil

  1. 通過本地XML設定檔(qos.xml)為RAM使用者或者RAM角色配置訪問資源集區的頻寬上限。

    <QoSConfiguration>
      <TotalUploadBandwidth>100</TotalUploadBandwidth>
      <IntranetUploadBandwidth>50</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>50</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>200</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>150</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>50</ExtranetDownloadBandwidth>
    </QoSConfiguration>
  2. 查看RAM使用者IDRAM角色ID

  3. 為RAM使用者(UID為266xxxx)添加以上頻寬配置。

    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
  4. (可選)列舉資源集區所有RAM使用者的頻寬配置。

    ossutil api invoke-operation --op-name list-resource-pool-requester-qos-infos --method GET --parameters resourcePool=examplePool  --parameters requesterQosInfo

SDK

目前僅支援通過Python SDK V2和Go SDK V2限制RAM使用者或RAM角色訪問資源集區的頻寬上限。

  1. 通過本地qos.xml檔案配置指定RAM使用者或RAM角色訪問資源集區的頻寬上限。

    <QoSConfiguration>
      <TotalUploadBandwidth>100</TotalUploadBandwidth>
      <IntranetUploadBandwidth>50</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>50</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>200</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>150</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>50</ExtranetDownloadBandwidth>
    </QoSConfiguration>
  2. 查看RAM使用者IDRAM角色ID

  3. 為RAM使用者或RAM角色設定以上頻寬配置。

    import alibabacloud_oss_v2 as oss
    
    def PutResourcePoolRequesterQoSInfo():
        # 從環境變數中載入憑證資訊,用於身分識別驗證
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
    
        # 載入預設配置並擷取設定物件
        cfg = oss.config.load_default()
    
        # 設定憑證提供者
        cfg.credentials_provider = credentials_provider
    
        # 填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為cn-hangzhou
        cfg.region = "cn-hangzhou"
    
        # 使用設定物件初始化OSS用戶端
        client = oss.Client(cfg)
    
        # 初始化qos_xml_body為空白字串
        qos_xml_body = ""
    
        # 開啟名為'qos.xml'的檔案,並讀取其中的內容到qos_xml_body變數中
        with open('qos.xml', 'r') as qos_file:
            qos_xml_body = qos_file.read()
    
        # 構造一個操作輸入請求對象,用於設定資源集區要求者的QoS資訊
        req = oss.OperationInput(
            op_name = 'PutResourcePoolRequesterQoSInfo',  # 操作名稱,這裡是指定設定資源集區要求者QoS資訊的操作
            method = 'PUT',  # HTTP方法類型,此處為PUT,表示更新資源
            parameters = {
                'requesterQosInfo': '',  # 參數列表,指定要設定的是要求者QoS資訊
                'resourcePool': 'example-resource-pool',  # 資源集區的唯一識別碼,用於區分不同的資源集區
                'qosRequester': '2598732222222xxxx',  # 要求者的唯一識別碼,用於區分不同的要求者
            },
            headers = None,  # 要求標頭資訊,如果不需要特殊設定則可以為None
            body = qos_xml_body,  # 請求體,包含之前從'qos.xml'檔案讀取的內容
            bucket = None,  # 目標儲存空間的名稱,這裡不需要指定具體的儲存空間,因此為None
        )
    
        # 調用用戶端的invoke_operation方法執行請求,並接收響應
        resp = client.invoke_operation(req)
    
        # 列印響應的狀態代碼
        print(resp.status_code)
    
        # 列印響應的頭部資訊
        print(resp.headers)
    
        # 列印響應的內容(HTTP響應體),通常包含請求返回的具體資料
        print(resp.http_response.content)
    
    if __name__ == "__main__":
        PutResourcePoolRequesterQoSInfo()

API

  1. 查看RAM使用者IDRAM角色ID

  2. 調用PutResourcePoolRequesterQoSInfo按以下樣本限制RAM使用者或RAM角色訪問資源集區的頻寬。

    <QoSConfiguration>
      <TotalUploadBandwidth>100</TotalUploadBandwidth>
      <IntranetUploadBandwidth>50</IntranetUploadBandwidth>
      <ExtranetUploadBandwidth>50</ExtranetUploadBandwidth>
      <TotalDownloadBandwidth>200</TotalDownloadBandwidth>
      <IntranetDownloadBandwidth>150</IntranetDownloadBandwidth>
      <ExtranetDownloadBandwidth>50</ExtranetDownloadBandwidth>
    </QoSConfiguration>

配置優先順序流控

適合需要保障核心業務最小頻寬,在資源競爭時優先滿足高優先順序對象的情境。

配置資源集區優先順序

資源集區中有多個Bucket,需要確保核心業務Bucket在頻寬緊張時仍能獲得足夠頻寬。

ossutil

  1. 建立優先順序設定檔priority-qos.xml

    <PriorityQosConfiguration>
      <PriorityCount>3</PriorityCount>
      <DefaultPriorityLevel>1</DefaultPriorityLevel>
      
      <DefaultGuaranteedQosConfiguration>
        <TotalUploadBandwidth>10</TotalUploadBandwidth>
        <IntranetUploadBandwidth>5</IntranetUploadBandwidth>
        <ExtranetUploadBandwidth>5</ExtranetUploadBandwidth>
        <TotalDownloadBandwidth>20</TotalDownloadBandwidth>
        <IntranetDownloadBandwidth>10</IntranetDownloadBandwidth>
        <ExtranetDownloadBandwidth>10</ExtranetDownloadBandwidth>
      </DefaultGuaranteedQosConfiguration>
      
      <QosPriorityLevelConfiguration>
        <PriorityLevel>3</PriorityLevel>
        <GuaranteedQosConfiguration>
          <TotalUploadBandwidth>50</TotalUploadBandwidth>
          <TotalDownloadBandwidth>80</TotalDownloadBandwidth>
          <ExtranetUploadBandwidth>30</ExtranetUploadBandwidth>
          <IntranetUploadBandwidth>20</IntranetUploadBandwidth>
          <ExtranetDownloadBandwidth>50</ExtranetDownloadBandwidth>
          <IntranetDownloadBandwidth>30</IntranetDownloadBandwidth>
        </GuaranteedQosConfiguration>
        <Subjects>
          <Bucket>critical-bucket</Bucket>
          <BucketGroup>core-group</BucketGroup>
        </Subjects>
      </QosPriorityLevelConfiguration>
      
      <QosPriorityLevelConfiguration>
        <PriorityLevel>2</PriorityLevel>
        <GuaranteedQosConfiguration>
          <TotalUploadBandwidth>30</TotalUploadBandwidth>
          <TotalDownloadBandwidth>50</TotalDownloadBandwidth>
          <ExtranetUploadBandwidth>20</ExtranetUploadBandwidth>
          <IntranetUploadBandwidth>10</IntranetUploadBandwidth>
          <ExtranetDownloadBandwidth>30</ExtranetDownloadBandwidth>
          <IntranetDownloadBandwidth>20</IntranetDownloadBandwidth>
        </GuaranteedQosConfiguration>
        <Subjects>
          <Bucket>important-bucket</Bucket>
        </Subjects>
      </QosPriorityLevelConfiguration>
    </PriorityQosConfiguration>
  2. 應用配置。

    ossutil api invoke-operation --op-name put-resource-pool-priority-qos-configuration --method PUT --parameters resourcePool=hz-rp-03 --parameters priorityQos --body=file://priority-qos.xml
  3. 擷取並驗證配置。

    ossutil api invoke-operation --op-name get-resource-pool-priority-qos-configuration --method GET --parameters resourcePool=hz-rp-03 --parameters priorityQos

SDK

package main

import (
	"bytes"
	"context"
	"crypto/md5"
	"encoding/base64"
	"fmt"
	"os"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

func PutResourcePoolPriorityQosConfiguration() {
	// 填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為cn-hangzhou。
	var region = "cn-hangzhou"

	// 載入預設配置並設定憑證提供者和地區
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// 建立OSS用戶端
	client := oss.NewClient(cfg)

	// 定義資源集區名稱
	resourcePool := "hz-rp-01"

	// 讀取優先順序QoS設定檔內容
	qosConf, err := os.ReadFile("priority-qos.xml")
	if err != nil {
		// 如果讀取QoS設定檔時發生錯誤,則列印錯誤資訊並退出程式
		fmt.Printf("failed to read qos.xml: %v\n", err)
		os.Exit(1)
	}

	// 計算輸入資料的MD5值,並將其轉換為Base64編碼字串
	calcMd5 := func(input []byte) string {
		if len(input) == 0 {
			return "1B2M2Y8AsgTpgAmY7PhCfg=="
		}
		h := md5.New()
		h.Write(input)
		return base64.StdEncoding.EncodeToString(h.Sum(nil))
	}

	// 建立操作輸入參數,包括操作名稱、方法類型、參數等
	input := &oss.OperationInput{
		OpName: "PutResourcePoolPriorityQoSConfiguration", // 操作名稱
		Method: "PUT",                                     // HTTP方法類型
		Parameters: map[string]string{
			"priorityQos":  "",           // 優先順序QoS資訊相關參數
			"resourcePool": resourcePool, // 資源集區名稱
		},
		Headers: map[string]string{
			"Content-MD5": calcMd5(qosConf), // 佈建要求體的MD5校正碼,用於驗證資料完整性
		},
		Body:   bytes.NewReader(qosConf), // 請求體,包含QoS配置內容
		Bucket: nil,                      // 此操作不針對特定儲存空間
	}

	// 執行操作請求,並接收響應結果或錯誤
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// 如果發生錯誤,則列印錯誤資訊並退出程式
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// 列印操作結果
	fmt.Println("The result of PutResourcePoolPriorityQoSConfiguration:", res.Status)
}

API

PutResourcePoolPriorityQosConfiguration

配置資源集區要求者優先順序

多租戶SaaS平台,不同等級的客戶訪問同一資源集區,需要為VIP客戶保障頻寬,普通客戶共用剩餘資源。

ossutil

  1. 建立要求者優先順序設定檔requester-priority-qos.xml

    <PriorityQosConfiguration>
      <PriorityCount>3</PriorityCount>
      <DefaultPriorityLevel>1</DefaultPriorityLevel>
      
      <DefaultGuaranteedQosConfiguration>
        <TotalUploadBandwidth>10</TotalUploadBandwidth>
        <IntranetUploadBandwidth>5</IntranetUploadBandwidth>
        <ExtranetUploadBandwidth>5</ExtranetUploadBandwidth>
        <TotalDownloadBandwidth>20</TotalDownloadBandwidth>
        <IntranetDownloadBandwidth>10</IntranetDownloadBandwidth>
        <ExtranetDownloadBandwidth>10</ExtranetDownloadBandwidth>
      </DefaultGuaranteedQosConfiguration>
      
      <QosPriorityLevelConfiguration>
        <PriorityLevel>3</PriorityLevel>
        <GuaranteedQosConfiguration>
          <TotalUploadBandwidth>60</TotalUploadBandwidth>
          <TotalDownloadBandwidth>100</TotalDownloadBandwidth>
          <ExtranetUploadBandwidth>40</ExtranetUploadBandwidth>
          <IntranetUploadBandwidth>20</IntranetUploadBandwidth>
          <ExtranetDownloadBandwidth>60</ExtranetDownloadBandwidth>
          <IntranetDownloadBandwidth>40</IntranetDownloadBandwidth>
        </GuaranteedQosConfiguration>
        <Subjects>
          <Requester>123456789012****</Requester>
          <Requester>234567890123****</Requester>
        </Subjects>
      </QosPriorityLevelConfiguration>
      
      <QosPriorityLevelConfiguration>
        <PriorityLevel>2</PriorityLevel>
        <GuaranteedQosConfiguration>
          <TotalUploadBandwidth>30</TotalUploadBandwidth>
          <TotalDownloadBandwidth>50</TotalDownloadBandwidth>
          <ExtranetUploadBandwidth>20</ExtranetUploadBandwidth>
          <IntranetUploadBandwidth>10</IntranetUploadBandwidth>
          <ExtranetDownloadBandwidth>30</ExtranetDownloadBandwidth>
          <IntranetDownloadBandwidth>20</IntranetDownloadBandwidth>
        </GuaranteedQosConfiguration>
        <Subjects>
          <Requester>345678901234****</Requester>
        </Subjects>
      </QosPriorityLevelConfiguration>
    </PriorityQosConfiguration>
  2. 應用配置

    ossutil api invoke-operation --op-name put-resource-pool-requester-priority-qos-configuration --method PUT --parameters resourcePool=hz-rp-03 --parameters requesterPriorityQos --body=file://requester-priority-qos.xml
  3. (可選)擷取並驗證配置。

    ossutil api invoke-operation --op-name get-resource-pool-requester-priority-qos-configuration --method GET --parameters resourcePool=hz-rp-03 --parameters requesterPriorityQos

SDK

package main

import (
	"bytes"
	"context"
	"crypto/md5"
	"encoding/base64"
	"fmt"
	"os"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

func PutResourcePoolRequesterPriorityQosConfiguration() {
	// 填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為cn-hangzhou。
	var region = "cn-hangzhou"

	// 載入預設配置並設定憑證提供者和地區
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// 建立OSS用戶端
	client := oss.NewClient(cfg)

	// 定義資源集區名稱
	resourcePool := "hz-rp-01"

	// 讀取要求者優先順序QoS設定檔內容
	qosConf, err := os.ReadFile("requester-priority-qos.xml")
	if err != nil {
		// 如果讀取QoS設定檔時發生錯誤,則列印錯誤資訊並退出程式
		fmt.Printf("failed to read qos.xml: %v\n", err)
		os.Exit(1)
	}

	// 計算輸入資料的MD5值,並將其轉換為Base64編碼字串
	calcMd5 := func(input []byte) string {
		if len(input) == 0 {
			return "1B2M2Y8AsgTpgAmY7PhCfg=="
		}
		h := md5.New()
		h.Write(input)
		return base64.StdEncoding.EncodeToString(h.Sum(nil))
	}

	// 建立操作輸入參數,包括操作名稱、方法類型、參數等
	input := &oss.OperationInput{
		OpName: "PutResourcePoolRequesterPriorityQoSConfiguration", // 操作名稱
		Method: "PUT",                                              // HTTP方法類型
		Parameters: map[string]string{
			"requesterPriorityQos": "", // 要求者優先順序QoS資訊相關參數
			"resourcePool":         resourcePool, // 資源集區名稱
		},
		Headers: map[string]string{
			"Content-MD5": calcMd5(qosConf), // 佈建要求體的MD5校正碼,用於驗證資料完整性
		},
		Body:   bytes.NewReader(qosConf), // 請求體,包含QoS配置內容
		Bucket: nil,                      // 此操作不針對特定儲存空間
	}

	// 執行操作請求,並接收響應結果或錯誤
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// 如果發生錯誤,則列印錯誤資訊並退出程式
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// 列印操作結果
	fmt.Println("The result of PutResourcePoolRequesterPriorityQoSConfiguration:", res.Status)
}

API

PutResourcePoolRequesterPriorityQosConfiguration

監控與警示

監控頻寬使用

在業務運行期間,可以在CloudMonitor-Object Storage Service資源集區,即時查看資源集區內關鍵業務的頻寬使用方式,確保資源分派合理且業務運行穩定。

設定頻寬警示

為確保關鍵業務穩定運行,可以通過CloudMonitor服務建立警示規則,當頻寬使用率超過 80% 時自動觸發警示,便於及時調整頻寬配置應對業務高峰。

應用於生產環境

容量規劃建議

1. 保底頻寬之和建議小於資源集區總頻寬的50%。

預留50%以上的彈性空間用於動態調度,可有效提升資源集區整體頻寬利用率。

推薦配置:
資源集區總頻寬:100Gbps
優先順序3保底:20Gbps
優先順序2保底:20Gbps
優先順序1保底:10Gbps
總計:50Gbps(預留50Gbps彈性空間)

2. 優先順序數量建議3-5個

過多優先順序增加管理複雜度,建議根據業務重要性分為3-5級:

  • 核心業務(優先順序4-5)

  • 重要業務(優先順序3)

  • 普通業務(優先順序1-2)

3. 閾值流控上限應高於優先順序保底

確保高優先順序對象在資源充足時能夠使用更多頻寬:

建議配置:
優先順序流控:Bucket A 保底50Gbps
閾值流控:Bucket A 最大80Gbps
實際可用:50-80Gbps(至少50,最多80)

最佳實務

情境1:ApsaraVideo for VOD平台

  • 直播流:優先順序3,保底50Gbps

  • 點播內容:優先順序1,保底20Gbps

  • CDN回源:閾值流控限制最大100Gbps

情境2:多租戶SaaS平台

  • 企業版客戶:優先順序3,分配保底頻寬

  • 免費版客戶:優先順序1,共用剩餘資源

  • 單租戶上限:閾值流控防止單租戶過度佔用

情境3:資料湖分析

  • 即時分析:優先順序2,保底30Gbps

  • 離線分析:優先順序1,保底20Gbps

  • 歸檔資料:閾值流控限制最大10Gbps

風險防範

1. 定期審查配額使用

通過CloudMonitor查看各對象的頻寬使用趨勢,及時調整配額:

  • 高優先順序對象保底頻寬滿足率持續<95%,考慮增加保底或降低低優先順序保底

  • 低優先順序對象長期無法使用,考慮降低高優先順序保底或擴容資源集區

2. 設定多級警示

  • 警告級(80%):提前預警,準備擴容方案

  • 嚴重級(90%):立即處理,啟動應急預案

3. 避免配置衝突

  • 保底頻寬之和不能超過資源集區總頻寬

  • 閾值流控上限應高於優先順序保底

  • Bucket同屬BucketGroup時,按BucketGroup優先順序生效

4. 變更與復原

  • 重要變更前,在測試環境驗證配置

  • 儲存當前配置,便於快速復原

  • 業務低峰期執行變更操作

配額與限制

限制項

配額/限制

資源集區

單個地區最多100個資源集區

單個資源集區最多100個Bucket

單個資源集區最多100個BucketGroup

單個資源集區最多為300個要求者配置流控

BucketGroup

名稱限制3-30個字元

只支援小寫字母、數字和虛線

優先順序流控

優先順序數量:3-10個

優先順序等級:正整數,≥1且≤優先順序總數

保底頻寬之和≤資源集區總頻寬

若無預設保底,則每個優先順序都必須配置保底頻寬

保底頻寬的最小值需要滿足MIN[5,上層資源集區對應項的閾值 / (2 * 優先順序數量)] Gbps

頻寬參數

正整數:具體限制值(單位Gbps)

-1:不限制(共用資源池頻寬)

0:禁止該類型流量(謹慎使用)

配置後生效延遲

5分鐘內