blkblock工具1
http://www.ibm.com/developerworks/cn/linux/l-cn-perf1/
http://blog.chinaunix.net/uid-24774106-id-4096470.html
http://blog.chinaunix.net/uid-7585066-id-2048703.html
[root@localhost /]# mount -t debugfs none /sys/kernel/debug/
[root@localhost /]# blktrace -d /dev/sda -o - |blkparse -i - -o blkparse.out
[root@localhost /]cat blkparse.out
[root@localhost /]cat blkparse.out 8,0 1 1 0.000000000 3408 A WS 10268614 + 8 <- (8,2) 9658144 8,0 1 2 0.000007285 3408 Q WS 10268614 + 8 [syslogd] 8,0 1 3 0.000013375 3408 G WS 10268614 + 8 [syslogd] 8,0 1 4 0.000015850 3408 P N [syslogd] 8,0 1 5 0.000017365 3408 I W 10268614 + 8 [syslogd] 8,0 1 0 0.000019440 0 m N cfq3408 insert_request 8,0 1 0 0.000020300 0 m N cfq3408 add_to_rr 8,0 1 0 0.000021995 0 m N cfq3408 preempt 8,0 1 0 0.000022605 0 m N cfq2980 slice expired t=1 8,0 1 0 0.000023220 0 m N cfq2980 resid=-95418 8,0 1 0 0.000026665 0 m N cfq3408 set_active
。。。。。。。。
CPU0 (8,0): Reads Queued: 0, 0KiB Writes Queued: 14, 56KiB Read Dispatches: 0, 0KiB Write Dispatches: 4, 56KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 4, 56KiB Read Merges: 0, 0KiB Write Merges: 10, 40KiB Read depth: 0 Write depth: 2 IO unplugs: 4 Timer unplugs: 0 CPU1 (8,0): Reads Queued: 0, 0KiB Writes Queued: 3, 12KiB Read Dispatches: 0, 0KiB Write Dispatches: 3, 12KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 3, 12KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB Read depth: 0 Write depth: 2 IO unplugs: 3 Timer unplugs: 0 Total (8,0): Reads Queued: 0, 0KiB Writes Queued: 17, 68KiB Read Dispatches: 0, 0KiB Write Dispatches: 7, 68KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 7, 68KiB Read Merges: 0, 0KiB Write Merges: 10, 40KiB IO unplugs: 7 Timer unplugs: 0
A IO was remapped to a different device blk-core.c/trace_block_remap
B IO bounced bounce.c/trace_block_bio_bounce
C IO completion blk-core.c/trace_block_rq_complete
D IO issued to driver elevator.c/trace_block_rq_issue
F IO front merged with request on queue blk-core.c/trace_block_bio_frontmerge
G Get request blk-core.c/trace_block_getrq
I IO inserted onto request queue elevator.c/trace_block_rq_insert
M IO back merged with request on queue blk-core.c/trace_block_bio_backmerge
P Plug request blk-core.c/trace_block_plug
Q IO handled by request queue code blk-core.c/trace_block_bio_queue
S Sleep request blk-core.c/trace_block_sleeprq
T Unplug due to timeout blk-core.c/trace_block_unplug_timer
U Unplug request blk-core.c/trace_block_unplug_io
X Split bio.c/trace_block_split
R表示是read操作,W表示write操作,B是barrier operation,S是synchronous operation