All Products
Search
Document Center

Alibaba Cloud Linux:Track I/O latency

Last Updated:Oct 12, 2023

The /proc/diskstats raw data source interface of the I/O latency analysis tool iostat is optimized in Alibaba Cloud Linux 2 and 3 to calculate the amount of time consumed by read, write, and special I/O (discard) operations on devices. The bcc tool is provided 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 allows you to query the disk I/O information of a device and the amount of time consumed by read, write, and discard operations on a device.

Example: Query the /proc/diskstats interface

cat /proc/diskstats

Sample output:

254       0 vda 6328 3156 565378 2223 1610 424 25160 4366 0 1358 5332 0 0 0 0 2205 3347 0

In the command output, the last three domains are new domains added in Alibaba Cloud Linux. The following table describes the domains.

Domain

Description

The sixteenth domain

The amount of time consumed by read operations on the device. Unit: ms.

The seventeenth domain

The amount of time consumed by write operations on the device. Unit: ms.

The eighteenth domain

The amount of time consumed by discard operations on the device. Unit: ms.

Note

For information about other domains, see the kernel document 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

Alibaba Cloud Linux provides the bcc tool to track I/O latency. You must download the tool before you can use it. Run the following command to download the tool:

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:

    /usr/share/bcc/tools/alibiolatency -h

    Sample 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 cycle
  • Run the man command to query the description of the bcc tool:

    man bcc-alibiolatency