1*387f9dfdSAndroid Build Coastguard WorkerDemonstrations of disksnoop.py, the Linux eBPF/bcc version. 2*387f9dfdSAndroid Build Coastguard Worker 3*387f9dfdSAndroid Build Coastguard Worker 4*387f9dfdSAndroid Build Coastguard WorkerThis traces block I/O, a prints a line to summarize each I/O completed: 5*387f9dfdSAndroid Build Coastguard Worker 6*387f9dfdSAndroid Build Coastguard Worker# ./disksnoop.py 7*387f9dfdSAndroid Build Coastguard WorkerTIME(s) T BYTES LAT(ms) 8*387f9dfdSAndroid Build Coastguard Worker16458043.435457 W 4096 2.73 9*387f9dfdSAndroid Build Coastguard Worker16458043.435981 W 4096 3.24 10*387f9dfdSAndroid Build Coastguard Worker16458043.436012 W 4096 3.13 11*387f9dfdSAndroid Build Coastguard Worker16458043.437326 W 4096 4.44 12*387f9dfdSAndroid Build Coastguard Worker16458044.126545 R 4096 42.82 13*387f9dfdSAndroid Build Coastguard Worker16458044.129872 R 4096 3.24 14*387f9dfdSAndroid Build Coastguard Worker16458044.130705 R 4096 0.73 15*387f9dfdSAndroid Build Coastguard Worker16458044.142813 R 4096 12.01 16*387f9dfdSAndroid Build Coastguard Worker16458044.147302 R 4096 4.33 17*387f9dfdSAndroid Build Coastguard Worker16458044.148117 R 4096 0.71 18*387f9dfdSAndroid Build Coastguard Worker16458044.148950 R 4096 0.70 19*387f9dfdSAndroid Build Coastguard Worker16458044.164332 R 4096 15.29 20*387f9dfdSAndroid Build Coastguard Worker16458044.168003 R 4096 3.58 21*387f9dfdSAndroid Build Coastguard Worker16458044.171676 R 4096 3.59 22*387f9dfdSAndroid Build Coastguard Worker16458044.172453 R 4096 0.72 23*387f9dfdSAndroid Build Coastguard Worker16458044.173213 R 4096 0.71 24*387f9dfdSAndroid Build Coastguard Worker16458044.173989 R 4096 0.72 25*387f9dfdSAndroid Build Coastguard Worker16458044.174739 R 4096 0.70 26*387f9dfdSAndroid Build Coastguard Worker16458044.190334 R 4096 15.52 27*387f9dfdSAndroid Build Coastguard Worker16458044.196608 R 4096 6.17 28*387f9dfdSAndroid Build Coastguard Worker16458044.203091 R 4096 6.35 29*387f9dfdSAndroid Build Coastguard Worker 30*387f9dfdSAndroid Build Coastguard WorkerThe output includes a basic timestamp (in seconds), the type of I/O (W == write, 31*387f9dfdSAndroid Build Coastguard WorkerR == read, M == metadata), the size of the I/O in bytes, and the latency (or 32*387f9dfdSAndroid Build Coastguard Workerduration) of the I/O in milliseconds. 33*387f9dfdSAndroid Build Coastguard Worker 34*387f9dfdSAndroid Build Coastguard WorkerThe latency is measured from I/O request to the device, to the device 35*387f9dfdSAndroid Build Coastguard Workercompletion. This excludes latency spent queued in the OS. 36*387f9dfdSAndroid Build Coastguard Worker 37*387f9dfdSAndroid Build Coastguard WorkerMost of the I/O in this example were 0.7 and 4 milliseconds in duration. There 38*387f9dfdSAndroid Build Coastguard Workerwas an outlier of 42.82 milliseconds, a read which followed many writes (the 39*387f9dfdSAndroid Build Coastguard Workerhigh latency may have been caused by the writes still being serviced on the 40*387f9dfdSAndroid Build Coastguard Workerstorage device). 41