Ftrace查看block信息
blk tracer使用静态挂钩子的基础设施 block event ,在tracepoint上注册自己的钩子函数。
使用脚本
# 1. 使用 block event
echo 1 > ./events/block/eable
cat /test.c > /dev/null
cat ./trace
# 2. 使用 blk tracer
echo blk > ./current_tracer
echo 1 > /sys/block/vda/trace/enable # 对硬盘(vda)启动blk的tracer
cat /test.c > /dev/null
cat ./trace
观察日志
# tracer: blk
#
jbd2/vda-8-73 [002] d... 78880.967292: 253,0 Q WS 2097760 + 8 [jbd2/vda-8]
kworker/u8:0-7 [003] d... 78880.967293: 253,0 Q W 69040 + 8 [kworker/u8:0]
jbd2/vda-8-73 [002] d... 78880.967772: 253,0 G WS 2097760 + 8 [jbd2/vda-8]
kworker/u8:0-7 [003] d... 78880.967806: 253,0 G W 69040 + 8 [kworker/u8:0]
jbd2/vda-8-73 [002] d... 78880.968122: 253,0 P N [jbd2/vda-8]
kworker/u8:0-7 [003] d... 78880.968140: 253,0 P N [kworker/u8:0]
jbd2/vda-8-73 [002] d... 78880.968190: 253,0 Q WS 2097768 + 8 [jbd2/vda-8]
jbd2/vda-8-73 [002] d... 78880.968319: 253,0 M WS 2097768 + 8 [jbd2/vda-8]
kworker/u8:0-7 [003] d... 78880.968497: 253,0 U N [kworker/u8:0] 1
jbd2/vda-8-73 [002] d... 78880.968501: 253,0 U N [jbd2/vda-8] 1
jbd2/vda-8-73 [002] d... 78880.969028: 253,0 I WS 2097760 + 16 [jbd2/vda-8]
kworker/u8:0-7 [003] d... 78880.969168: 253,0 I W 69040 + 8 [kworker/u8:0]
jbd2/vda-8-73 [002] d... 78880.969261: 253,0 D WS 2097760 + 16 [jbd2/vda-8]
kworker/u8:0-7 [003] d... 78880.969278: 253,0 D W 69040 + 8 [kworker/u8:0]
<idle>-0 [003] d.s. 78880.970474: 253,0 C WS 2097760 + 16 [0]
<idle>-0 [003] d.s. 78880.970687: 253,0 C W 69040 + 8 [0]
jbd2/vda-8-73 [002] d... 78880.971295: 253,0 Q FWFS 2097776 + 8 [jbd2/vda-8]
jbd2/vda-8-73 [002] d... 78880.971338: 253,0 G FWFS 2097776 + 8 [jbd2/vda-8]
kworker/2:1H-75 [002] d... 78880.971531: 253,0 D FN [kworker/2:1H]
<idle>-0 [003] d.s. 78880.974808: 253,0 C FN 0 [0]
kworker/3:1H-72 [003] d... 78880.975057: 253,0 D WS 2097776 + 8 [kworker/3:1H]
<idle>-0 [003] d.s. 78880.975527: 253,0 C WS 2097776 + 8 [0]
kworker/3:1H-72 [003] d... 78880.975752: 253,0 D FN [kworker/3:1H]
<idle>-0 [003] d.s. 78880.978367: 253,0 C FN 0 [0]
<idle>-0 [003] d.s. 78880.978395: 253,0 C WS 2097776 [0]
输出日志格式查看说明文档
ps: 使用blktrace/blkparse工具和trace功能是一样的,只是应用接口不一样,输出结果一样。推荐使用blktrace/blkparse工具
参考资料
- 谢欢, ftrace公开课