这是命令 blkparse 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
blkparse - 生成块设备事件流的格式化输出
概要
块解析 [ 选项 ]
商品描述
块解析 实用程序将尝试组合各种设备的事件流
各种 CPU,并生成事件信息的格式化输出。 具体来说,它
将采用(机器可读的)输出 跟踪 实用程序并将其转换为一个很好的
格式化和人类可读的形式。
和...一样 跟踪,有关的一些细节 块解析 将有助于理解命令
下面介绍的线路选项。
- 默认情况下, 块解析 期望在后处理模式下运行; 一个踪迹
事件已被先前运行的 blktrace 保存,并且 blkparse 正在组合事件
流和转储格式化数据。
通过指定,blkparse 可以与 blktrace 以实时方式同时运行 -i - 至
blkparse,并将其与 blktrace 的 live 选项结合使用。 一个例子是:
% blktrace -d /dev/sda -o - | blkparse-i-
- 您可以通过设置 blkparse 批处理事件读取的数量 -b 选项,默认为
批量处理512个事件。
- 如果您在 blktrace 中使用不同的输出名称(通过 -o
blktrace 的选项),您必须通过 -i 选项。
- 输出数据的格式可以通过控制 -f or -F 选项——见输出
详细信息的描述和格式。
默认情况下,blkparse 将格式化数据发送到标准输出。 这可以通过
-o 选项,或者可以通过 -O 选项。 合并的二进制流可以是
使用 -d 选项。
配置
-A 十六进制掩码
--设置掩码=十六进制掩码
将过滤器掩码设置为 十六进制掩码, 请参阅 blktrace (8) 以获取掩码
-a 面膜
--act-掩码=面膜
地址 面膜 到当前过滤器,请参阅 blktrace (8) 以获取掩码
-D DIR
--输入目录=DIR
前置 DIR 输入文件名
-b 批量
--batch={批次}
标准输入读取批处理
-i 文件
--输入=文件
指定输入文件的基本名称——默认为 设备.blktrace。CPU.
如上所述,指定 -i - 使用 blktrace 以实时模式运行(从
标准)。
-F 类型,fmt
--格式=类型,fmt
-f fmt
--格式规格=fmt
设置输出格式(有关详细信息,请参阅输出描述和格式。)
-f 形式指定所有事件的格式
-F 形式允许为特定事件类型指定格式。 这
单字符 类型 字段是 ACTION 中描述的动作说明符之一
身份标识。
-M
--无消息
当指定 -d 时,这将阻止消息输出到文件。 (能
在使用 CFQ I/O 调度程序时,会严重减少结果文件的大小。)
-h
--按名称散列
按名称散列进程,而不是按 PID
-o 文件
--输出=文件
输出文件
-O
--无文本输出
Do 不能 产生文本输出,用于二进制(-d) 只要
-d 文件
--dump-二进制=文件
二进制输出文件
-q
- 安静的
静音模式
-s
--每个程序统计
显示按程序排序的数据
-t
--track-ios
显示每个 IO 的时间增量
-w 跨度
--秒表=跨度
显示跟踪 跨度 指定 - 其中跨度可以是:
时间结束 -- 显示从时间 0 到时间的轨迹 时间结束 (以纳秒为单位)
or
开始:结束时间 -- 显示时间痕迹 开始 通过结束时间(以 ns 为单位)。
-v
--详细
关于边际错误的更详细的边际
-V
- 版
显示版本
跟踪 行动
识别以下跟踪操作:
C -- 完成 先前发出的请求已完成。 输出将详细说明
该请求的扇区和大小,以及它的成功或失败。
D -- 发行 先前驻留在块层队列或 i/o 中的请求
调度程序已发送给驱动程序。
I -- 插入 正在向 i/o 调度程序发送请求以添加到内部
排队,稍后由司机服务。 此时请求已完全形成。
Q -- 排队 这说明了在给定位置排队 i/o 的意图。 不存在真正的请求
但。
B -- 反弹 附加到此的数据页 生物 硬件无法访问,并且
必须反弹到较低的内存位置。 这会导致 i/o 大幅放缓
性能,因为数据必须复制到内核缓冲区/从内核缓冲区复制。 通常这可以是
使用更好的硬件来修复——要么是更好的 I/O 控制器,要么是一个平台
一个 IOMMU。
M -- 背部 合并 先前插入的请求存在于 where 的边界上
这个 i/o 开始,所以 i/o 调度器可以将它们合并在一起。
F -- 前 合并 与后合并相同,除了此 i/o 在先前插入的位置结束
请求开始。
M -- 前 or 背部 合并 以上之一
M -- 前 or 背部 合并 以上之一。
G -- 得到 请求 要将任何类型的请求发送到块设备, 结构 请求 容器
必须先分配。
S -- 睡觉 没有可用的请求结构可用,因此发行人必须等待
一个被释放。
P -- 插头 当 i/o 排队到一个先前为空的块设备队列时,Linux 将插入
排队等待在需要此数据之前添加未来的 ios。
U -- 拔 一些请求数据已经在设备中排队,开始向设备发送请求
司机。 如果超时期限已过,这可能会自动发生(请参阅下一个条目)
或者是否有多个请求已添加到队列中。
T -- 拔 两 至 计时器 如果没有人请求插入后排队的 i/o
队列,Linux 将在定义的时间段过去后自动拔掉它。
X -- 分裂 在 raid 或设备映射器设置中,传入的 i/o 可能跨越设备或
内部区域,需要切成小块以供使用。 这可能
表示由于该 raid/dm 设备设置不当而导致的性能问题,但也可能
只是正常边界条件的一部分。 dm 在这方面尤其糟糕,并且会克隆
大量的输入/输出。
A -- 重映射 对于堆叠设备,传入的 i/o 将重新映射到 i/o 中它下面的设备
堆。 重新映射操作详细说明了正在重新映射到什么内容。
OUTPUT 商品描述 AND 格式化
blkparse 的输出可以针对特定用途进行定制——特别是为了简化
解析输出,和/或将输出字段限制为用户想要查看的字段。 数据为
可以输出的字段包括:
a 动作,一个(小)字符串(1 或 2 个字符)——更多细节见下表
c CPU ID
C 命令
d RWBS 字段,一个(小)字符串(1-3 个字符)——有关详细信息,请参阅下面的部分
D 包含事件设备的主要和次要编号的 7 字符字符串
(以逗号分隔)。
e 误差值
m 事件设备的次要数量。
M 事件设备的主要编号。
n 块数
N 字节数
p 进程ID
P 显示数据包数据——一系列十六进制值
s 序列号
S 扇区号
t 时间戳(纳秒)
T 时间戳(秒)
u 以微秒为单位的经过值 (-t 命令行选项)
U 有效载荷无符号整数
请注意,用户可以选择指定字段显示宽度,也可以选择指定左-
对齐说明符。 这些在字段说明符之前,带有一个“%”字符,后跟
可选的左对齐说明符 (-) 后跟宽度(十进制数),然后
场。
因此,要在左对齐的 12 个字符的字段中指定命令:
-f "%-12C"
活动正式启动 身份标识
下表显示了可能输出的各种操作:
IO 被重新映射到不同的设备
B IO 反弹
C IO 完成
D IO 发给驱动程序
F IO 前端与队列上的请求合并
G 获取请求
I IO 插入到请求队列
M IO 返回与队列上的请求合并
P 插头请求
请求队列代码处理的Q IO
S 睡眠请求
T 由于超时拔掉
U 拔掉请求
X 分裂
RWBS 商品描述
这是一个包含至少一个字符的小字符串('R' 表示读取,'W' 表示写入,或
'D' 用于块丢弃操作),以及可选的 'B'(用于屏障操作)或
'S'(用于同步操作)。
DEFAULT OUTPUT
标准标题(或显示的初始字段)包括:
“%D %2c %8s %5T.%9t %5p %2a %3d”
分解如下:
%D 将事件的设备主要/次要显示为:%3d,%-3d。
%2c CPU ID(2 个字符的字段)。
%8s 序列号
%5T.%9t
时间戳的秒部分的 5 个字符字段和 9 个字符的字段
对于时间戳中的纳秒。
%5p 进程 ID 的 5 个字符字段。
%2a 其中一项操作的 2 个字符字段。
%3天 RWBS 数据的 3 个字符字段。
看到这个在行动:
8,0 3 1 0.000000000 697 GW 223490 + 8 [kjournald]
头是这一行直到223490(起始块)的数据。 默认的
所有事件类型的输出都包含此标头。
DEFAULT OUTPUT PER 活动正式启动
C -- 完成
如果存在有效负载,则将其显示在标题后面的括号之间,
后跟错误值。
如果不存在有效载荷,则显示扇区和块数(带有
中间加 (+) 字符)。 如果 -t 选项被指定,然后经过的时间
被表达。 在任何一种情况下,后面都是完成的错误值。
B -- 反弹
D -- 发行
I -- 插入
Q -- 排队
如果存在有效载荷,则输出有效载荷字节数,然后是
括号之间的十六进制有效载荷。
如果不存在有效载荷,则显示扇区和块数(带有
中间加 (+) 字符)。 如果 -t 选项被指定,然后经过的时间
显示(在括号中)。 在任何一种情况下,它后面都跟有命令
与事件相关联(用方括号括起来)。
F -- 前 合并
G -- 得到 请求
M -- 背部 合并
S -- 睡觉
输出起始扇区和块数(中间加(+)
字符),后跟与事件关联的命令(由正方形包围
括号)。
P -- 插头
输出与事件关联的命令(用方括号括起来)。
U -- 拔
T -- 拔 两 至 计时器
输出与事件相关的命令(用方括号括起来),
其次是未完成的请求数。
X -- 分裂
原始起始扇区后跟新扇区(以斜线 (/) 分隔)是
输出,后跟与事件关联的命令(由正方形包围
括号)。
A -- 重映射
输出扇区和长度,以及原始设备和扇区偏移。
示例
跟踪设备上的 i/o /开发/ hda 和 解析 此 产量 至 人 可读 形成, 使用
此 以下 命令:
% 跟踪 -d / dev / sda上的 -o - | 块解析 -i -
(见 跟踪 (8) 了解更多信息)。 可以通过以下方式实现相同的行为
方便脚本 跟踪. 命令
% btrace /dev/sda
与上一个命令的效果完全相同。 看 跟踪 (8) 了解更多信息。
跟踪设备上的 i/o 并保存输出以供以后处理 块解析, 使用
跟踪 喜欢这个:
% blktrace /dev/sda /dev/sdb
这将跟踪设备上的 i/o / dev / sda上的 和 的/ dev / sdb的 并保存记录的信息
在文件中 SDA 和 SDB 在当前目录中,对于两个不同的设备,
分别。 此跟踪信息稍后可以由 块解析 效用:
% blkparse sda sdb
它将以前记录的跟踪信息以人类可读的形式输出到
标准输出。
作者
块解析 由 Jens Axboe、Alan D. Brunelle 和 Nathan Scott 撰写。 这个手册页是
从创建 跟踪 Bas Zoetekouw 的文档。
REPORTING BUGS
将错误报告给[电子邮件保护]>
版权
版权所有 © 2006 Jens Axboe、Alan D. Brunelle 和 Nathan Scott。
这是免费软件。 您可以根据 GNU 的条款重新分发它的副本
通用公共许可证http://www.gnu.org/licenses/gpl.html>. 没有保证,
法律允许的范围。
本手册页是由 Bas Zoetekouw 为 Debian 创建的。 它来源于
作者提供的文档,可在以下条件下使用、分发和修改
GNU 通用公共许可证第 2 版的条款。
在 Debian 系统上,可以在以下位置找到 GNU 通用公共许可证的文本
/usr/share/common-licenses/GPL-2。
使用 onworks.net 服务在线使用 blkparse