You're tripping over the fact the these disk IOs are happening asynchronously to the process/thread that initiated them. The dd(1) process has long since been placed on a sleep queue by the time you're hitting the ARC code, which is why execname is "sched" (the execname of PID 0 - the user process is not running - it's not on-cpu when the probe fires).
If you want to look at the disk IO load being generated by an application, use the syscall provider, or the fsinfo provider. You can't chase IO's and correlate them to user processes once you get below fsinfo - they're off CPU and sleeping while the kernel goes off and deals with the disk IOs. The IO size will typically change as you move down the stack, unless the application issues IOs that align with the underlying file system record size, but even then things like prefetching will result in the physical IO size not necessarily aligning with the number of bytes the application tried to read or write. Starting at the bottom - if you want to monitor physical disk IO rates, use the DTrace io provider, and/or iostat. If you want to track IO rates through a file system, use the DTrace fsinfo provider, and/or the fsstat command. If you want to track disk IO's generating by applications, start with the syscall provider. It's possible to connect the dots up and down the stack, and there should be examples of that in iotop in Brendan's DTraceToolkit. Thanks, /jim Ferrand wrote:
Hye, I still try to access application side I/O size on a ZFS file system. ( example : if /var/zfs_fs is a ZFS file system /var/zfs_fs:# dd if=/dev/urandom of=file bs=4k count=100000000000000 i try to get an information simple as execname == "dd" block_size = 4096 in order to trace a specific application I/O profile I've tried with both "fbt::arc_access, fbt::arc_write, fbt::arc_buf_evict, fbt::arc_change_state, fbt::zio_create, ...", but i can't retrieve this information. Some times, block_size doesn't match 4k (e.g 128k, ..., or 0 with the zio_create probe) Some times, execname is "sched" and hide the application name wich initiate the I/O. I've read a lot of the ZFS ans ARC source code, but can't find any DTrace probe that provides me those informations. Please, need some Help R.
_______________________________________________ dtrace-discuss mailing list dtrace-discuss@opensolaris.org