blktrace 命令

发布于 2025-02-21 22:32:05 字数 3236 浏览 9 评论 0

语法

blktrace -d dev [ -r debugfs_path ] [ -o output ] [-k ] [ -w time ] [ -a action ] [ -A action_mask ] [ -v ]

命令选项

blktrace 是一个块层 IO 跟踪命令

$ blktrace -help
-d <dev>             | --dev=<dev>   填写一个跟踪的磁盘,必填选项
[ -r <debugfs path>  | --relay=<debugfs path> ]   指定 debugfs 的挂载路径
[ -o <file>          | --output=<file>]  输出的文件叫什么,默认值为 device.blktrace.cpu。 -o - 可以把输出打印屏幕上
[ -D <dir>           | --output-dir=<dir>  输出的目录
[ -w <time>          | --stopwatch=<time>] 跟踪的时长,默认单位为秒
[ -a <action field>  | --act-mask=<action field>]   跟踪哪种磁盘行为
[ -A <action mask>   | --set-mask=<action mask>]    通过 16 位掩码设置跟踪哪种磁盘行为
[ -b <size>          | --buffer-size]   缓存区的大小,默认为 512KB,默认单位为 K
[ -n <number>        | --num-sub-buffers=<number>]  默认缓存区的个数,默认为 4 个
[ -l                 | --listen]  开启监听(blktrace 服务器模式)
[ -h <hostname>      | --host=<hostname>] 客户端模式,要链接哪个主机上
[ -p <port number>   | --port=<port number>]  网络模式要使用哪个端口默认为 8462
[ -s                 | --no-sendfile]  在网络客户端模式下,不使用 sendfile() 系统调用来传输数据
[ -I <devs file>     | --input-devs=<devs file>]  输入文件,将文件作为设置
[ -v <version>       | --version] 打印版本
[ -V <version>       | --version] 打印版本

-d Use specified device. May also be given last after options  跟踪一个设备,可以放在最后
-r Path to mounted debugfs, defaults to /sys/kernel/debug  指定 debugfs 的挂载路径,默认指向/sys/kernel/debug 
-o File(s) to send output to  要输出发送到哪个文件中
-D Directory to prepend to output file names  输出文件在哪个目录中
-w Stop after defined time, in seconds  要跟踪多少秒
-a Only trace specified actions. See documentation  仅仅跟踪一个磁盘行为 可以添加多个-a
-A Give trace mask as a single value. See documentation 通过 16 位掩码设置跟踪哪种磁盘行为
-b Sub buffer size in KiB (default 512)  缓冲区大小,默认为 512K,单位为 K
-n Number of sub buffers (default 4)  缓冲区个数,默认为 4 个
-l Run in network listen mode (blktrace server)  运行 blktrace 为服务端模式,打开监听
-h Run in network client mode, connecting to the given host 运行 blktrace 为客户端模式,-h 后面加服务端的主机 IP 地址
-p Network port to use (default 8462)   网络模式的端口,默认为 8462
-s Make the network client NOT use sendfile() to transfer data  网络模式下发送数据不使用 sendfile() 系统调用
-I Add devices found in <devs file>  在文件中查找设备(不知道什么意思)
-v Print program version info  打印版本信息
-V Print program version info  打印版本信息

一些详细的解释

-a 可以添加作为过滤的选项

barrier: barrier attribute
complete: completed by driver
fs: requests
issue: issued to driver
pc: packet command events
queue: queue operations
read: read traces
requeue: requeue operations
sync: synchronous attribute
write: write traces
notify: trace messages
drv_data: additional driver specific trace

blktrace 区分两种类型的块层请求,文件系统和 SCSI 命令。前者称为 fs 请求,后者称为 pc 请求。文件系统请求是正常的读/写操作,即以给定大小从特定磁盘位置进行任何类型的读或写操作。这些请求通常来自用户进程,但也可能由 vm 将脏数据刷新到磁盘或文件系统将超级或日志块同步到磁盘来启动。pc 请求是 SCSI 命令。blktrace 将命令数据块作为有效载荷发送,以便 blkparse 可以对其进行解码。

举例

要跟踪设备/dev/sda上的 I/O 并将输出解析为人类可读的形式,请使用以下命令:

$ blktrace -d /dev/sda -o - |blkparse -i -

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

上一篇:

下一篇:

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

拒绝两难

暂无简介

文章
评论
28 人气
更多

推荐作者

闻呓

文章 0 评论 0

深府石板幽径

文章 0 评论 0

mabiao

文章 0 评论 0

枕花眠

文章 0 评论 0

qq_CrTt6n

文章 0 评论 0

红颜悴

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文