Alibaba Cloud Linux 2 optimizes the /proc/diskstats
raw data source interface of the I/O latency analysis tool iostat. Alibaba Cloud
Linux 2 can calculate the amount of time taken by read, write, and special I/O (discard)
operations on devices. In addition, Alibaba Cloud Linux 2 provides the bcc tool to
track I/O latency. This topic describes the optimized /proc/diskstats
interface and the bcc tool.
Interface description
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 taken by read, write, and discard operations on a device.
cat /proc/diskstats
Example output: 254 0 vda 6328 3156 565378 2223 1610 424 25160 4366 0 1358 5332 0 0 0 0 2205 3347 0
In the output, the last three domains are new domains added in Alibaba Cloud Linux 2. The following table describes the three domains.
Domain | Description |
---|---|
The sixteenth domain | The amount of time taken by read operations on the device. Unit: ms. |
The seventeenth domain | The amount of time taken by write operations on the device. Unit: ms. |
The eighteenth domain | The amount of time taken by discard operations on the device. Unit: ms. |
Documentation/iostats.txt
. You can obtain the kernel document from the Debuginfo package and source code package
of Alibaba Cloud Linux 2. For more information, see Use Alibaba Cloud Linux 2.
bcc
yum install -y bcc-tools
You can run one of the following commands to query the description of the bcc tool:
- Run the following command to query the description of the bcc tool:
Sample description:/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
- Run the
man
command to query the description of the bcc tool:man bcc-alibiolatency