首页 > 编程笔记 > Linux笔记 阅读:2

Linux blktrace命令:分析磁盘I/O负载情况(附带实例)

blktrace 命令来自英文词组 block trace 的缩写,其功能是分析磁盘 I/O 负载情况。

在查看 Linux 系统磁盘的负载情况时,我们一般会使用 iostat 监控工具,其中很重要的参数就是 await。await 表示单个 I/O 所需的平均时间,但它同时也包含了 I/O  调度器所消耗的时间和硬件所消耗的时间,所以不能作为硬件性能的指标。

那么,如何才能分辨一个 I/O 从下发到返回的整个时间内,是硬件耗时多还是在 I/O 调度耗时多呢?如何查看 I/O 在各个时间段所消耗的时间呢?

blktrace 命令在这种场合就能派上用场了,因为它能记录 I/O 所经历的各个步骤,从中可以分析是 IO 调度器慢还是硬件响应慢,以及它们各自所用的时间。

Linux blktrace 命令的语法格式如下:
blktrace 参数 设备名
常用参数见下表:

选项 描述 选项 描述
-a 添加到当前过滤器 -l 设置要使用的缓冲区数量
-A 设置过滤信息为十六进制掩码 -n 设置缓冲池大小
-b 设置缓存大小 -o 设置输出文件的名字
-d 设置设备追踪 -r 设置 debugfs 挂载点
-D 设置输入文件的基本名称 -v 显示版本信息
-h 设置主机名 -w 设置运行的时间
-k 杀掉正在运行的追踪    

【实例 1】分析指定磁盘的 I/O 情况:
[root@clinux ~]# blktrace -d /dev/sda

【实例 2】设置运行的时间为 30 秒,分析指定磁盘的 I/O 情况:
[root@clinux ~]# blktrace -w 30 -d /dev/sda
=== sda ===
CPU 0:                    10 events,     1 KiB data
CPU 1:                     0 events,     0 KiB data
CPU 2:                     0 events,     0 KiB data
CPU 3:                     0 events,     0 KiB data
CPU 4:                     0 events,     0 KiB data
CPU 5:                     0 events,     0 KiB data
CPU 6:                     0 events,     0 KiB data
CPU 7:                     0 events,     0 KiB data
CPU 8:                   150 events,     8 KiB data
CPU 9:                    10 events,     1 KiB data
CPU 10:                    1 events,     1 KiB data
CPU 11:                    0 events,     0 KiB data
CPU 12:                    0 events,     0 KiB data
………………省略部分输出信息………………

【实例 3】分析指定磁盘的 I/O 情况,并指定输出文件的名称:
[root@clinux ~]# blktrace -d /dev/sda -o File
[root@clinux ~]# ls File.blktrace.*
File.blktrace.0  File.blktrace.14 File.blktrace.2  File.blktrace.4
File.blktrace.1  File.blktrace.15 File.blktrace.20 File.blktrace.5
File.blktrace.10 File.blktrace.16 File.blktrace.21 File.blktrace.6
File.blktrace.11 File.blktrace.17 File.blktrace.22 File.blktrace.7
File.blktrace.12 File.blktrace.18 File.blktrace.23 File.blktrace.8
File.blktrace.13 File.blktrace.19 File.blktrace.3  File.blktrace.9
………………省略部分输出信息………………

相关文章