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

Reply via email to