On Mon, Mar 26, 2012 at 4:18 AM, Jim Mauro <james.ma...@oracle.com> wrote: > If you're chasing CPU utilization, specifically %sys (time in the kernel), > I would start with a time-based kernel profile. > > #dtrace -n 'profile-997hz /arg0/ { @[stack()] = count(); } tick-60sec { > trunc(@, 20); printa(@0; }' > > I would be curious to see where the CPU cycles are being consumed first, > before going down the lock path… > > This assume that most or all of CPU utilization is %sys. If it's %usr, we take > a different approach. >
Here is the output, I changed to "tick-5sec" and "trunc(@, 5)". No.2 and No.3 is what I care about. Thanks, -Aubrey 21 80536 :tick-5sec ========== 1 ===================== genunix`avl_walk+0x6a genunix`as_gap_aligned+0x2b7 unix`map_addr_proc+0x179 unix`map_addr+0x8e genunix`choose_addr+0x9e zfs`zfs_map+0x161 genunix`fop_map+0xc5 genunix`smmap_common+0x268 genunix`smmaplf32+0xa2 genunix`syscall_ap+0x92 unix`_sys_sysenter_post_swapgs+0x149 1427 ========= 2 ================= unix`mutex_delay_default+0x7 unix`mutex_vector_enter+0x2ae zfs`zfs_zget+0x46 zfs`zfs_root+0x55 genunix`fsop_root+0x2d genunix`traverse+0x65 genunix`lookuppnvp+0x446 genunix`lookuppnatcred+0x119 genunix`lookupnameatcred+0x97 genunix`lookupnameat+0x6b genunix`vn_openat+0x147 genunix`copen+0x493 genunix`openat64+0x2d unix`_sys_sysenter_post_swapgs+0x149 2645 ========== 3 ===================== unix`mutex_delay_default+0x7 unix`mutex_vector_enter+0x2ae zfs`zfs_zget+0x46 zfs`zfs_root+0x55 genunix`fsop_root+0x2d genunix`traverse+0x65 genunix`lookuppnvp+0x446 genunix`lookuppnatcred+0x119 genunix`lookupnameatcred+0x97 genunix`lookupnameat+0x6b genunix`cstatat_getvp+0x11e genunix`cstatat64_32+0x5d genunix`fstatat64_32+0x4c unix`_sys_sysenter_post_swapgs+0x149 3201 ======== 4 =========== unix`i86_mwait+0xd unix`cpu_idle_mwait+0x154 unix`idle+0x116 unix`thread_start+0x8 3559 ========= 5 ============== tmpfs`tmp_readdir+0x138 genunix`fop_readdir+0xe8 genunix`getdents64+0xd5 unix`_sys_sysenter_post_swapgs+0x149 4589 ========= 6 ================ unix`strlen+0x3 genunix`fop_readdir+0xe8 genunix`getdents64+0xd5 unix`_sys_sysenter_post_swapgs+0x149 5005 =========== 7 ================= tmpfs`tmp_readdir+0xc7 genunix`fop_readdir+0xe8 genunix`getdents64+0xd5 unix`_sys_sysenter_post_swapgs+0x149 9548 ========= 8 ======================= unix`strlen+0x8 genunix`fop_readdir+0xe8 genunix`getdents64+0xd5 unix`_sys_sysenter_post_swapgs+0x149 11166 ============= 9 =================== unix`strlen+0xe genunix`fop_readdir+0xe8 genunix`getdents64+0xd5 unix`_sys_sysenter_post_swapgs+0x149 14491 ============= 10 ================== tmpfs`tmp_readdir+0xbe genunix`fop_readdir+0xe8 genunix`getdents64+0xd5 unix`_sys_sysenter_post_swapgs+0x149 39540 _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss