#!/usr/sbin/dtrace -s #pragma D option quiet dtrace:::BEGIN { trace("Tracing... Hit Ctrl-C to end.\n"); } sched:::on-cpu { self->on = vtimestamp; } sched:::off-cpu /self->on/ { @oncpu[execname] = sum(vtimestamp - self->on); self->on = 0; } vminfo:::anonpgin { self->anonpgin = 1; } fbt::pageio_setup:return { self->wait = timestamp; } fbt::pageio_done:entry /self->anonpgin == 1/ { self->anonpgin = 0; @pageintime[execname] = sum(timestamp - self->wait); eslf->wait = 0; } dtrace:::END { normalize(@oncpu, 1000000); printf("Who's on cpu (milliseconds):\n"); printa(" %-50s %15@d\n", @oncpu); normalize(@pageintime, 1000000); printf("Who's waiting for pagein (milliseconds):\n"); printa(" %-50s %15@d\n", @pageintime); }