The /proc/diskstats raw data source interface of the iostat I/O latency analysis tool is optimized in Alibaba Cloud Linux to calculate the amount of time consumed by read, write, and special I/O (discard) operations on devices. In addition, Alibaba Cloud Linux 2 provides the BPF Compiler Collection (BCC) toolset to track I/O latency. This topic describes the optimized /proc/diskstats interface and the BCC toolset in Alibaba Cloud Linux 2.
/proc/diskstats interface
The /proc/diskstats interface in Alibaba Cloud Linux 2 allows you to query the I/O information on a disk and the amount of time consumed by read, write, and discard operations on a device.
Run the following command to query the /proc/diskstats interface:
cat /proc/diskstatsThe following command output is returned:
254 0 vda 6328 3156 565378 2223 1610 424 25160 4366 0 1358 5332 0 0 0 0 2205 3347 0In the command output, the last three fields are new fields in Alibaba Cloud Linux 2. The following table describes all fields.
Install and use the BCC toolset
Alibaba Cloud Linux 2 provides the BCC toolset to track I/O latency.
Run the following command to download the BCC toolset:
yum install -y bcc-toolsRun one of the following commands to query the description of the BCC toolset:
Run the following command to query the description of the BCC toolset:
/usr/share/bcc/tools/alibiolatency -hSample description:
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 cycleRun the
mancommand to query the description of the BCC toolset.man bcc-alibiolatency