On Mar 25, 2012, at 6:51 PM, Aubrey Li wrote:
> 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


Well, there you go. tmpfs is not zfs.
 -- richard

-- 

ZFS and performance consulting
http://www.RichardElling.com
SCALE 10x, Los Angeles, Jan 20-22, 2012















_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to