日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置blk-iocost權(quán)重限速

更新時(shí)間:

blk-iocost權(quán)重限速功能是Alibaba Cloud Linux對(duì)cgroup I/O子系統(tǒng)(blkcg)基于權(quán)重的磁盤限速功能的改進(jìn)。它是一種I/O控制器,可以根據(jù)應(yīng)用程序或進(jìn)程的優(yōu)先級(jí)為塊設(shè)備上的I/O操作分配帶寬,并且可以通過(guò)設(shè)置權(quán)重值來(lái)限制特定應(yīng)用程序或進(jìn)程對(duì)塊設(shè)備的I/O帶寬使用,以便幫助您更好地實(shí)現(xiàn)對(duì)磁盤I/O資源的控制和管理。

說(shuō)明

cgroup v1和cgroup v2是Linux內(nèi)核中的兩個(gè)不同版本的資源管理功能。在Alibaba Cloud Linux內(nèi)核中,blk-iocost功能同時(shí)支持cgroup v1和v2接口,但通常在一個(gè)系統(tǒng)中只有一個(gè)版本是被激活和使用的。您可以通過(guò)stat -fc %T /sys/fs/cgroup命令查看當(dāng)前系統(tǒng)使用的是cgroup v1接口還是cgroup v2接口:

  • 回顯為tmpfs:表示cgroup v1接口。

  • 回顯為cgroup2fs:表示cgroup v2接口。

接口說(shuō)明

  • cost.qos接口

    該接口用于開啟或關(guān)閉blk-iocost功能以及基于延遲(latency)權(quán)重限制I/O服務(wù)質(zhì)量(QoS)的速率。是一個(gè)可讀可寫接口,接口文件只存在于blkcg根組,且在不同cgroup中的完整名稱不同:

    • cgroup v1:接口文件完整名稱為blkio.cost.qos

    • cgroup v2:接口文件完整名稱為io.cost.qos

    接口配置說(shuō)明:

    每行配置以設(shè)備的Major號(hào)和Minor號(hào)開頭,格式為MAJ:MIN(通過(guò)lsblk | grep <云盤名稱>命令查詢?cè)O(shè)備號(hào)),后邊銜接其他配置項(xiàng),說(shuō)明如下。

    • enable:是否開啟blk-iocost功能。

      • 默認(rèn)值0:關(guān)閉blk-iocost功能。

      • 修改為1:開啟blk-iocost功能。

    • ctrl:控制模式,可選值為autouser

      • auto:系統(tǒng)自動(dòng)探測(cè)設(shè)備類型并使用內(nèi)置參數(shù)。

        重要

        設(shè)置ctrl=auto時(shí),如果ECS實(shí)例掛載的云盤存儲(chǔ)類型為SSD云盤、ESSD云盤或NVMe SSD本地盤等固態(tài)存儲(chǔ)設(shè)備時(shí),需要手動(dòng)將對(duì)應(yīng)云盤的rotational屬性設(shè)置為0。blk-iocost可以更準(zhǔn)確地估計(jì)I/O成本并相應(yīng)地調(diào)整其調(diào)度策略,以提高固態(tài)存儲(chǔ)設(shè)備的I/O性能。命令示例如下:

        sudo sh -c 'echo 0 > /sys/block/<DISK_NAME>/queue/rotational' #<DISK_NAME>需替換為實(shí)際的云盤名稱
      • user:需要用戶手動(dòng)設(shè)置以下控制參數(shù)。

        • rpct:讀延遲百分比,取值范圍為[0,100]。

        • rlat:讀延遲,單位為us。

        • wpct:寫延遲百分比,取值范圍為[0,100]。

        • wlat:寫延遲,單位為us。

        • min:最小速率調(diào)整比例,取值范圍為[1,10000]。

        • max:最大速率調(diào)整比例,取值范圍為[1,10000]。

  • cost.model接口

    該接口用于設(shè)置成本模型(cost model)。是一個(gè)可讀可寫接口,接口文件只存在于blkcg根組,且在不同cgroup中的完整名稱不同:

    • cgroup v1:接口文件完整名稱為blkio.cost.model

    • cgroup v2:接口文件完整名稱為io.cost.model

    接口配置說(shuō)明:

    每行配置以設(shè)備的Major號(hào)和Minor號(hào)開頭,格式為MAJ:MIN(通過(guò)lsblk | grep <云盤名稱>命令查詢?cè)O(shè)備號(hào)),后邊銜接其他配置項(xiàng),說(shuō)明如下。

    • ctrl:控制模式,可選值為autouser

      • auto:系統(tǒng)基于當(dāng)前工作負(fù)載自動(dòng)優(yōu)化I/O調(diào)度策略。

        重要

        設(shè)置ctrl=auto時(shí),如果ECS實(shí)例掛載的云盤存儲(chǔ)類型為SSD云盤、ESSD云盤或NVMe SSD本地盤等固態(tài)存儲(chǔ)設(shè)備時(shí),需要手動(dòng)將對(duì)應(yīng)云盤的rotational屬性設(shè)置為0。blk-iocost可以更準(zhǔn)確地估計(jì)I/O成本并相應(yīng)地調(diào)整其調(diào)度策略,以提高固態(tài)存儲(chǔ)設(shè)備的I/O性能。命令示例如下:

        sudo sh -c 'echo 0 > /sys/block/<DISK_NAME>/queue/rotational' #<DISK_NAME>需替換為實(shí)際的云盤名稱
      • user:需要用戶手動(dòng)輸入模型參數(shù)。

    • model:模型參數(shù),當(dāng)前只實(shí)現(xiàn)了一種模型linear。當(dāng)模型參數(shù)為linear時(shí),定義如下建模參數(shù)。

      • [r|w]bps:最大順序IO帶寬。

      • [r|w]seqiops:順序IOPS(Input/Output Operations Per Second)。

      • [r|w]randiops:隨機(jī)IOPS。

        說(shuō)明

        以上參數(shù)可以使用內(nèi)核源碼中的tools/cgroup/iocost_coef_gen.py腳本來(lái)生成,然后寫入cost.model接口文件內(nèi)設(shè)置成本模型。

  • weight(Alibaba Cloud Linux 3)/cost.weightAlibaba Cloud Linux 2)接口

    該接口可以為每個(gè)設(shè)備配置權(quán)重,也可以修改該整個(gè)子組的默認(rèn)權(quán)重(100),范圍為[1,10000]。是一個(gè)可讀可寫接口,接口文件只存在blkcg的子組中,且在不同cgroup中的完整名稱不同:

    Alibaba Cloud Linux 3

    在不同cgroup中的完整名稱不同:

    • cgroup v1:接口文件完整名稱為blkio.cost.weight

    • cgroup v2:接口文件完整名稱為io.weight

    Alibaba Cloud Linux 2

    • cgroup v1:接口文件完整名稱為blkio.cost.weight

    • cgroup v2:接口文件完整名稱為io.cost.weight

    接口配置說(shuō)明:

    • 為接口設(shè)置權(quán)重值<weight>:表示修改blkcg的默認(rèn)權(quán)重。

    • 為接口設(shè)置端口號(hào)和權(quán)重值MAJ:MIN <weight>:表示修改設(shè)備上的blkcg的權(quán)重。

功能限制

僅以下內(nèi)核版本的Alibaba Cloud Linux鏡像支持配置blk-iocost功能:

  • Alibaba Cloud Linux 2:4.19.81-17及以上內(nèi)核版本。

  • Alibaba Cloud Linux 3:所有版本。

操作步驟

步驟一:使用cost.qos接口開啟blk-iocost功能

場(chǎng)景示例:使用cost.qos接口為設(shè)備254:48開啟blk-iocost功能,并且當(dāng)讀寫請(qǐng)求延遲rlat|wlat有5%超過(guò)5ms時(shí),認(rèn)為磁盤飽和。內(nèi)核將進(jìn)行磁盤發(fā)送請(qǐng)求速率的調(diào)整,調(diào)整區(qū)間為最低降至原速率的50%,最高升至原速率的150%。cgroup v1接口和cgroup v2接口命令分別如下。

cgroup v1接口

sudo sh -c 'echo "254:48 enable=1 ctrl=user rpct=95.00 rlat=5000 wpct=95.00 wlat=5000 min=50.00 max=150.00" > /sys/fs/cgroup/blkio/blkio.cost.qos'

cgroup v2接口

sudo sh -c 'echo "254:48 enable=1 ctrl=user rpct=95.00 rlat=5000 wpct=95.00 wlat=5000 min=50.00 max=150.00" > /sys/fs/cgroup/io.cost.qos'

步驟二:使用cost.model接口設(shè)置成本模型

場(chǎng)景示例:使用cost.model接口在設(shè)備254:48上使用用戶輸入的linear建模參數(shù)設(shè)置模型。cgroup v1接口和cgroup v2接口命令分別如下。

cgroup v1接口

sudo sh -c 'echo "254:48 ctrl=user model=linear rbps=2706339840 rseqiops=89698 rrandiops=110036 wbps=1063126016 wseqiops=135560 wrandiops=130734" > /sys/fs/cgroup/blkio/blkio.cost.model'

cgroup v2接口

sudo sh -c 'echo "254:48 ctrl=user model=linear rbps=2706339840 rseqiops=89698 rrandiops=110036 wbps=1063126016 wseqiops=135560 wrandiops=130734" > /sys/fs/cgroup/io.cost.model'

步驟三:使用weight接口修改權(quán)重

場(chǎng)景示例:通過(guò)步驟一:使用cost.qos接口開啟blk-iocost功能步驟二:使用cost.model接口設(shè)置成本模型配置cost.qoscost.model接口開啟blk-iocost功能之后,創(chuàng)建blkcg1(cgroup v1)/cg1(cgroup v2)控制組并使用cost.weight(cgroup v1)/weight(cgroup v2)接口將控制組的默認(rèn)權(quán)重修改為50,然后設(shè)置控制組在設(shè)備254:48上的權(quán)重為50,cgroup v1接口和cgroup v2接口命令分別如下。

cgroup v1接口

sudo mkdir /sys/fs/cgroup/blkio/blkcg1    # 創(chuàng)建控制組blkcg1
sudo sh -c 'echo "50" > /sys/fs/cgroup/blkio/blkcg1/blkio.cost.weight'    # 將默認(rèn)權(quán)重修改為50
sudo sh -c 'echo "254:48 50" > /sys/fs/cgroup/blkio/blkcg1/blkio.cost.weight'    #將設(shè)備上的權(quán)重設(shè)置為50

cgroup v2接口

  • Alibaba Cloud Linux 2

    sudo mkdir /sys/fs/cgroup/cg1    # 創(chuàng)建控制組cg1
    sudo sh -c 'echo "50" > /sys/fs/cgroup/cg1/io.cost.weight'    # 將默認(rèn)權(quán)重修改為50
    sudo sh -c 'echo "254:48 50" > /sys/fs/cgroup/cg1/io.cost.weight'    #將設(shè)備上的權(quán)重設(shè)置為50
  • Alibaba Cloud Linux 3

    sudo mkdir /sys/fs/cgroup/cg1    # 創(chuàng)建控制組cg1
    sudo sh -c 'echo "50" > /sys/fs/cgroup/cg1/io.weight'    # 將默認(rèn)權(quán)重修改為50
    sudo sh -c 'echo "254:48 50" > /sys/fs/cgroup/cg1/io.weight'    #將設(shè)備上的權(quán)重設(shè)置為50

常用監(jiān)測(cè)工具

blk-iocost需要能夠監(jiān)控和評(píng)估系統(tǒng)的I/O性能,可以通過(guò)以下工具或接口來(lái)監(jiān)測(cè)I/O資源的使用情況,以便幫助您更好地理解和調(diào)優(yōu)I/O資源的使用情況。

  • iocost monitor腳本

    Linux內(nèi)核源碼中的tools/cgroup/iocost_monitor.py腳本基于drgn調(diào)試器可以直接獲取內(nèi)核參數(shù)進(jìn)行I/O性能數(shù)據(jù)的監(jiān)控輸出。腳本使用方式如下。

    1. 首先確保安裝drgn調(diào)試器。示例命令:

      sudo pip3 install drgn

      更多關(guān)于drgn的信息,請(qǐng)參見drgn

    2. (可選)下載 iocost_monitor.py

      如果您沒(méi)有下載完整的Linux內(nèi)核源碼,需要從Linux內(nèi)核的公共倉(cāng)庫(kù)克隆或下載 iocost_monitor.py 腳本。示例命令:

      wget https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/tools/cgroup/iocost_monitor.py
    3. 運(yùn)行 iocost_monitor.py腳本。示例命令(以vdd云盤為例):

      sudo python3 ./iocost_monitor.p vdd

      返回結(jié)果示例如下。

      vdd RUN  per=500.0ms cur_per=3930.839:v14620.321 busy= +1 vrate=6136.22% params=hdd
                                active    weight      hweight% inflt% dbt  delay usages%
      blkcg1                       *    50/   50   9.09/  9.09   0.00   0  0*000 009:009:009
      blkcg2                       *   500/  500  90.91/ 90.91   0.00   0  0*000 089:091:092
  • cgroup v1接口下的blkio.cost.stat接口

    Alibaba Cloud Linux內(nèi)核提供了在cgroup v1接口下的blk-iocost統(tǒng)計(jì)接口,該接口文件中記錄了每個(gè)受控制的設(shè)備的QoS數(shù)據(jù)。查看該接口文檔的命令如下。

    cat /sys/fs/cgroup/blkio/blkcg1/blkio.cost.stat

    返回結(jié)果示例如下。

    254:48 is_active=1 active=50 inuse=50 hweight_active=5957 hweight_inuse=5957 vrate=159571
  • ftrace監(jiān)測(cè)工具

    Alibaba Cloud Linux內(nèi)核提供了blk-iocost相關(guān)的ftrace工具。對(duì)于 blk-iocost 功能,ftrace可以幫助捕捉調(diào)度器的決策過(guò)程,詳細(xì)跟蹤I/O請(qǐng)求的處理,從而提供深入的性能分析。使用方式如下。

    1. enable屬性設(shè)置為1,開啟ftrace工具。

      sudo sh -c 'echo 1 > /sys/kernel/debug/tracing/events/iocost/enable'
    2. 查看信息輸出接口。

      sudo cat /sys/kernel/debug/tracing/trace_pipe

      返回結(jié)果示例如下。

          dd-1593  [008] d...   688.565349: iocost_iocg_activate: [vdd:/blkcg1] now=689065289:57986587662878 vrate=137438 period=22->22 vtime=0->57986365150756 weight=50/50 hweight=65536/65536
          dd-1593  [008] d.s.   688.575374: iocost_ioc_vrate_adj: [vdd] vrate=137438->137438 busy=0 missed_ppm=0:0 rq_wait_pct=0 lagging=1 shortages=0 surpluses=1
      <idle>-0     [008] d.s.   688.608369: iocost_ioc_vrate_adj: [vdd] vrate=137438->137438 busy=0 missed_ppm=0:0 rq_wait_pct=0 lagging=1 shortages=0 surpluses=1
          dd-1594  [006] d...   688.620002: iocost_iocg_activate: [vdd:/blkcg2] now=689119946:57994099611644 vrate=137438 period=22->26 vtime=0->57993412421644 weight=250/250 hweight=65536/65536
      <idle>-0     [008] d.s.   688.631367: iocost_ioc_vrate_adj: [vdd] vrate=137438->137438 busy=0 missed_ppm=0:0 rq_wait_pct=0 lagging=1 shortages=0 surpluses=1
      <idle>-0     [008] d.s.   688.642368: iocost_ioc_vrate_adj: [vdd] vrate=137438->137438 busy=0 missed_ppm=0:0 rq_wait_pct=0 lagging=1 shortages=0 surpluses=1
      <idle>-0     [008] d.s.   688.653366: iocost_ioc_vrate_adj: [vdd] vrate=137438->137438 busy=0 missed_ppm=0:0 rq_wait_pct=0 lagging=1 shortages=0 surpluses=1
      <idle>-0     [008] d.s.   688.664366: iocost_ioc_vrate_adj: [vdd] vrate=137438->137438 busy=0 missed_ppm=0:0 rq_wait_pct=0 lagging=1 shortages=0 surpluses=1