#! stap # Simple (dumb) script to figure out the sizes of IOs getting # generated. # # TODO: # - sort the output by iosizes for easy read # - add per device counters # - hook it up in right places (to handle failures correctly) # global iosizes probe kernel.function("blk_rq_map_sg") { iosizes [$rq->nr_sectors] ++ } function _(n) { return string(n) } function report () { foreach (io in iosizes) { if (iosizes[io]) print("iosize = " . _(io/2) . "k\t iocount = " . _(iosizes[io]) . "\n") } delete iosizes } probe begin { print ("io sizes tracking, start time=" . _(gettimeofday_s()) . "\n") } probe end { report() print ("io sizes tracking, end time=" . _(gettimeofday_s()) . "\n") }