# stap -v 3.10.0-229.1.2.el7.x86_64 -e ' global s_var, e_var, stat_var; /* probe smgr__md__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid, int); */ probe process("/home/amit.kapila/workspace/master/installation/bin/postgres").mark("smgr__md__read__start") { s_var[pid(),1] = gettimeofday_us() } /* probe smgr__md__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int, int); */ probe process("/home/amit.kapila/workspace/master/installation/bin/postgres").mark("smgr__md__read__done") { e_var[pid(),1] = gettimeofday_us() if ( s_var[pid(),1] > 0 ) stat_var[pid(),1] <<< e_var[pid(),1] - s_var[pid(),1] } /* probe smgr__md__write__start(ForkNumber, BlockNumber, Oid, Oid, Oid, int); */ probe process("/home/amit.kapila/workspace/master/installation/bin/postgres").mark("smgr__md__write__start") { s_var[pid(),2] = gettimeofday_us() } /* probe smgr__md__write__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int, int); */ probe process("/home/amit.kapila/workspace/master/installation/bin/postgres").mark("smgr__md__write__done") { e_var[pid(),2] = gettimeofday_us() if ( s_var[pid(),2] > 0 ) stat_var[pid(),2] <<< e_var[pid(),2] - s_var[pid(),2] } probe process("/home/amit.kapila/workspace/master/installation/bin/postgres").mark("buffer__sync__start") { printf("buffer__sync__start num_buffers: %d, dirty_buffers: %d\n", $NBuffers, $num_to_write) } probe process("/home/amit.kapila/workspace/master/installation/bin/postgres").mark("checkpoint__start") { printf("checkpoint start\n") } probe process("/home/amit.kapila/workspace/master/installation/bin/postgres").mark("checkpoint__done") { printf("checkpoint done\n") } probe timer.s(1) { foreach ([v1,v2] in stat_var +) { if ( @count(stat_var[v1,v2]) >0 ) { printf("r1_or_w2 %d, pid: %d, min: %d, max: %d, avg: %d, sum: %d, count: %d\n", v2, v1, @min(stat_var[v1,v2]), @max(stat_var[v1,v2]), @avg(stat_var[v1,v2]), @sum(stat_var[v1,v2]), @count(stat_var[v1,v2])) } } printf("----------------------------------end-----------------------------\n") delete s_var delete e_var delete stat_var }