Skip to content

dtrace.conf 2012 - ZFS DTrace Provider

Matt Ahrens and George Wilson of Delphix.

ZFS DTrace Provider

provide file info in io provider

  • this will only work for "normal" i/o's
  • zil, mos, aggregate io's will not have file info
  • initially, only reads will have file info

ZIO probes

  • provides zfs-specific information about each logical i/o
  • aggregation
  • arguments to probe will include:
  • bookmark
  • dnode type
  • file name
  • dataset name
  • sync vs. async
  • zil vs. other (including dmu_sync())
  • for zil, allocated vs written size
  • is it a read-to-write
  • is it a scrub
  • is it a send
  • is it from the L2ARC
  • prefetch
  • perhaps the originating PID? (otherwise not knowable for async writes)
  • pipeline stages
  • allocation details

TXG probes

  • track txg state changes and why
  • open -> quiescing -> syncing -> done
  • why: timer, memory throttle, dirty throttle, requested
  • phases of sync (pass1; sync task; scan; ...)
  • calls to txg_wait_sync (usually indicates administrative action)
  • calls to txg_wait_open (usually indicates write throttling)

ARC probes

  • global variables (arc_c, etc)?
  • buffer state changes (mru -> mfu -> evict -> evict ghost)
  • arguments to probe will include:
  • bookmark / file name / dataset name
  • time block was initially added to ARC
  • why it was initially added to ARC (prefetch vs read vs write)