Alibaba Cloud Linux 2和Alibaba Cloud Linux 3優化了IO時延分析工具iostat的原始數據來源/proc/diskstats
接口,增加了對設備側的讀、寫及特殊IO(discard)等耗時的統計,此外還提供了一個方便追蹤IO時延的工具bcc。本文將分別介紹優化后的/proc/diskstats
接口以及bcc工具。
接口說明
/proc/diskstats接口在Alibaba Cloud Linux中可查詢磁盤IO信息、設備側的讀耗時、設備側的寫耗時及設備側discard耗時。
示例:查詢/proc/diskstats接口。
cat /proc/diskstats
返回結果示例如下。
254 0 vda 6328 3156 565378 2223 1610 424 25160 4366 0 1358 5332 0 0 0 0 2205 3347 0
返回結果中,最后三個域為Alibaba Cloud Linux新增域,域說明如下。
域 | 描述 |
第16個域 | 設備側的讀耗時,單位為ms。 |
第17個域 | 設備側的寫耗時,單位為ms。 |
第18個域 | 設備側的discard耗時,單位為ms。 |
說明
其他域的說明,您可以參考內核文檔Documentation/iostats.txt
中對該接口的相關說明。內核文檔通過Alibaba Cloud Linux 2的Debuginfo包和源碼包獲取,如何獲取請參見Alibaba Cloud Linux 2使用說明。
bcc工具
Alibaba Cloud Linux提供一個方便用戶追蹤IO時延的工具bcc。您需要先下載該工具才能使用,下載命令如下。
yum install -y bcc-tools
您可以通過以下兩種命令查看bcc工具的說明。
通過以下命令獲取bcc工具說明。
/usr/share/bcc/tools/alibiolatency -h
說明展示。
usage: alibiolatency [-h] [-d DEVICE] [-i [DIS_INTERVAL]] [-t [AVG_THRESHOLD_TIME]] [-T [THRESHOLD_TIME]] [-r] Summarize block device I/O latency optional arguments: -h, --help show this help message and exit -d DEVICE, --device DEVICE inspect specified device -i [DIS_INTERVAL], --dis_interval [DIS_INTERVAL] specify display interval -t [AVG_THRESHOLD_TIME], --avg_threshold_time [AVG_THRESHOLD_TIME] display only when average request process time is greater than this value -T [THRESHOLD_TIME], --threshold_time [THRESHOLD_TIME] dump request life cycle when single request process time is greater than this value -r, --dump_raw dump every io request life cycle examples: ./alibiolatency # summarize block I/O latency(default display interval is 2s) ./alibiolatency -d sda3 # inspect specified device /dev/sda3 ./alibiolatency -i 2 # specify display interval, 2s ./alibiolatency -t 10 # display only when average request process time is greater than 10ms ./alibiolatency -T 20 # dump request life cycle when single request process time is greater than 20ms ./alibiolatency -r # dump every io request life cycle
通過
man
命令獲取bcc工具說明。man bcc-alibiolatency
文檔內容是否對您有幫助?