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

Block IO限流增強監控接口

為了更方便地監控Linux block IO限流,Alibaba Cloud Linux 2(內核版本4.19.81-17.al7開始)和Alibaba Cloud Linux 3增加相關接口,用于增強block IO限流的監控統計能力。本文主要介紹新增接口及使用示例。

背景信息

很多場景中您會用到Linux block IO限流(bps/iops),特別是在支持控制群組回寫(cgroup writeback)后,IO限流使用場景更加廣泛。提高block IO限流的監控能力能使您更方便進行IO限流相關操作,因此Alibaba Cloud Linux新增了Block IO限流增強監控接口。

接口說明

接口

描述

blkio.throttle.io_service_time

該接口表示從block IO限流層開始下發到IO完成的耗時。單位:ns

blkio.throttle.io_wait_time

該接口表示在block IO限流層被限流的耗時。單位:ns

blkio.throttle.io_completed

該接口表示已完成的IO個數,用于計算block IO限流層的平均時延。單位:個

blkio.throttle.total_io_queued

該接口表示歷史發生限流的IO總個數,通過周期性的監控可以計算出當前周期發生限流的IO個數,從而輔助分析IO時延是否與限流有關。單位:個

blkio.throttle.total_bytes_queued

該接口表示歷史發生限流的IO總字節數,同blkio.throttle.total_io_queued,只是以IO大小的形式展現。單位:字節

以上接口的路徑為/sys/fs/cgroup/blkio/<cgroup>/,其中<cgroup>為控制群組。

示例

您可以通過增強block IO限流的監控統計能力的接口獲取某個磁盤上的平均IO時延。本示例中通過監控磁盤vdd兩個時間點的平均寫IO時延,時間間隔為5 s,進而統計出磁盤vdd的平均IO時延。示例參數說明如下。

參數

說明

write_wait_time<N>

獲取在block IO限流層被限流的耗時。

write_service_time<N>

獲取從block IO限流層開始下發到IO完成的耗時。

write_completed<N>

獲取已完成的IO個數。

  1. 在T1時刻獲取監控數據。

    write_wait_time1 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_wait_time | grep -w "254:48 Write" | awk '{print $3}'`
    write_service_time1 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_service_time | grep -w "254:48 Write" | awk '{print $3}'`
    write_completed1 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_completed | grep -w "254:48 Write" | awk '{print $3}'`
  2. 等待5 s后,在T2時刻獲取監控數據。

    write_wait_time2 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_wait_time | grep -w "254:48 Write" | awk '{print $3}'`
    write_service_time2 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_service_time | grep -w "254:48 Write" | awk '{print $3}'`
    write_completed2 = `cat /sys/fs/cgroup/blkio/blkcg1/blkio.throttle.io_completed | grep -w "254:48 Write" | awk '{print $3}'`
  3. 統計5 s內的平均IO時延。

    平均IO時延的計算規則:(T2時刻的總IO耗時 - T1時刻的總IO耗時)/(T2時刻已完成的IO個數 - T1時刻已完成的IO個數)。

    avg_delay = `echo "((write_wait_time2 + write_service_time2) - (write_wait_time1+write_service_time1)) / (write_completed2 - write_completed1)" | bc`