1*387f9dfdSAndroid Build Coastguard WorkerExamples of bitesize.py, the Linux bcc/eBPF version. 2*387f9dfdSAndroid Build Coastguard Worker 3*387f9dfdSAndroid Build Coastguard Worker 4*387f9dfdSAndroid Build Coastguard WorkerThe aim of this tool is to show I/O distribution for requested block sizes, by process name. 5*387f9dfdSAndroid Build Coastguard Worker 6*387f9dfdSAndroid Build Coastguard Worker# ./bitesize.py 7*387f9dfdSAndroid Build Coastguard WorkerTracing... Hit Ctrl-C to end. 8*387f9dfdSAndroid Build Coastguard Worker^C 9*387f9dfdSAndroid Build Coastguard Worker 10*387f9dfdSAndroid Build Coastguard WorkerProcess Name = 'kworker/u128:1' 11*387f9dfdSAndroid Build Coastguard Worker Kbytes : count distribution 12*387f9dfdSAndroid Build Coastguard Worker 0 -> 1 : 1 |******************** | 13*387f9dfdSAndroid Build Coastguard Worker 2 -> 3 : 0 | | 14*387f9dfdSAndroid Build Coastguard Worker 4 -> 7 : 2 |****************************************| 15*387f9dfdSAndroid Build Coastguard Worker 16*387f9dfdSAndroid Build Coastguard WorkerProcess Name = 'bitesize.py' 17*387f9dfdSAndroid Build Coastguard Worker Kbytes : count distribution 18*387f9dfdSAndroid Build Coastguard Worker 0 -> 1 : 0 | | 19*387f9dfdSAndroid Build Coastguard Worker 2 -> 3 : 0 | | 20*387f9dfdSAndroid Build Coastguard Worker 4 -> 7 : 0 | | 21*387f9dfdSAndroid Build Coastguard Worker 8 -> 15 : 0 | | 22*387f9dfdSAndroid Build Coastguard Worker 16 -> 31 : 0 | | 23*387f9dfdSAndroid Build Coastguard Worker 32 -> 63 : 0 | | 24*387f9dfdSAndroid Build Coastguard Worker 64 -> 127 : 0 | | 25*387f9dfdSAndroid Build Coastguard Worker 128 -> 255 : 1 |****************************************| 26*387f9dfdSAndroid Build Coastguard Worker 27*387f9dfdSAndroid Build Coastguard WorkerProcess Name = 'dd' 28*387f9dfdSAndroid Build Coastguard Worker Kbytes : count distribution 29*387f9dfdSAndroid Build Coastguard Worker 0 -> 1 : 3 | | 30*387f9dfdSAndroid Build Coastguard Worker 2 -> 3 : 0 | | 31*387f9dfdSAndroid Build Coastguard Worker 4 -> 7 : 6 | | 32*387f9dfdSAndroid Build Coastguard Worker 8 -> 15 : 0 | | 33*387f9dfdSAndroid Build Coastguard Worker 16 -> 31 : 1 | | 34*387f9dfdSAndroid Build Coastguard Worker 32 -> 63 : 1 | | 35*387f9dfdSAndroid Build Coastguard Worker 64 -> 127 : 0 | | 36*387f9dfdSAndroid Build Coastguard Worker 128 -> 255 : 0 | | 37*387f9dfdSAndroid Build Coastguard Worker 256 -> 511 : 1 | | 38*387f9dfdSAndroid Build Coastguard Worker 512 -> 1023 : 0 | | 39*387f9dfdSAndroid Build Coastguard Worker 1024 -> 2047 : 488 |****************************************| 40*387f9dfdSAndroid Build Coastguard Worker 41*387f9dfdSAndroid Build Coastguard WorkerProcess Name = 'jbd2/dm-1-8' 42*387f9dfdSAndroid Build Coastguard Worker Kbytes : count distribution 43*387f9dfdSAndroid Build Coastguard Worker 0 -> 1 : 0 | | 44*387f9dfdSAndroid Build Coastguard Worker 2 -> 3 : 0 | | 45*387f9dfdSAndroid Build Coastguard Worker 4 -> 7 : 1 |****************************************| 46*387f9dfdSAndroid Build Coastguard Worker 47*387f9dfdSAndroid Build Coastguard WorkerProcess Name = 'cat' 48*387f9dfdSAndroid Build Coastguard Worker Kbytes : count distribution 49*387f9dfdSAndroid Build Coastguard Worker 0 -> 1 : 1 | | 50*387f9dfdSAndroid Build Coastguard Worker 2 -> 3 : 0 | | 51*387f9dfdSAndroid Build Coastguard Worker 4 -> 7 : 0 | | 52*387f9dfdSAndroid Build Coastguard Worker 8 -> 15 : 0 | | 53*387f9dfdSAndroid Build Coastguard Worker 16 -> 31 : 0 | | 54*387f9dfdSAndroid Build Coastguard Worker 32 -> 63 : 1 | | 55*387f9dfdSAndroid Build Coastguard Worker 64 -> 127 : 0 | | 56*387f9dfdSAndroid Build Coastguard Worker 128 -> 255 : 0 | | 57*387f9dfdSAndroid Build Coastguard Worker 256 -> 511 : 1924 |****************************************| 58*387f9dfdSAndroid Build Coastguard Worker 59*387f9dfdSAndroid Build Coastguard WorkerProcess Name = 'ntpd' 60*387f9dfdSAndroid Build Coastguard Worker Kbytes : count distribution 61*387f9dfdSAndroid Build Coastguard Worker 0 -> 1 : 0 | | 62*387f9dfdSAndroid Build Coastguard Worker 2 -> 3 : 0 | | 63*387f9dfdSAndroid Build Coastguard Worker 4 -> 7 : 104 |****************************************| 64*387f9dfdSAndroid Build Coastguard Worker 65*387f9dfdSAndroid Build Coastguard WorkerProcess Name = 'vmtoolsd' 66*387f9dfdSAndroid Build Coastguard Worker Kbytes : count distribution 67*387f9dfdSAndroid Build Coastguard Worker 0 -> 1 : 0 | | 68*387f9dfdSAndroid Build Coastguard Worker 2 -> 3 : 0 | | 69*387f9dfdSAndroid Build Coastguard Worker 4 -> 7 : 1 |****************************************| 70*387f9dfdSAndroid Build Coastguard Worker 71*387f9dfdSAndroid Build Coastguard WorkerProcess Name = 'bash' 72*387f9dfdSAndroid Build Coastguard Worker Kbytes : count distribution 73*387f9dfdSAndroid Build Coastguard Worker 0 -> 1 : 0 | | 74*387f9dfdSAndroid Build Coastguard Worker 2 -> 3 : 0 | | 75*387f9dfdSAndroid Build Coastguard Worker 4 -> 7 : 0 | | 76*387f9dfdSAndroid Build Coastguard Worker 8 -> 15 : 0 | | 77*387f9dfdSAndroid Build Coastguard Worker 16 -> 31 : 2 |****************************************| 78*387f9dfdSAndroid Build Coastguard Worker 79*387f9dfdSAndroid Build Coastguard WorkerProcess Name = 'jbd2/sdb-8' 80*387f9dfdSAndroid Build Coastguard Worker Kbytes : count distribution 81*387f9dfdSAndroid Build Coastguard Worker 0 -> 1 : 0 | | 82*387f9dfdSAndroid Build Coastguard Worker 2 -> 3 : 0 | | 83*387f9dfdSAndroid Build Coastguard Worker 4 -> 7 : 1 |****************************************| 84*387f9dfdSAndroid Build Coastguard Worker 8 -> 15 : 0 | | 85*387f9dfdSAndroid Build Coastguard Worker 16 -> 31 : 0 | | 86*387f9dfdSAndroid Build Coastguard Worker 32 -> 63 : 1 |****************************************| 87*387f9dfdSAndroid Build Coastguard Worker 88*387f9dfdSAndroid Build Coastguard WorkerWe can see from above that there was a dd command being run which generated 488 IOPS between 1MB and 2MB, we can also see the 89*387f9dfdSAndroid Build Coastguard Workercat command generating 1924 IOPS between 256Kb and 512Kb. 90