Site icon UnixArena

Oracle Solaris – Performance Troubleshooting using DTrace Toolkit

DTrace Took kit

DTrace Took kit

In this article, we will look at  DTrace toolkit which is used to troubleshoot performance issues on Solaris operating systems. One of the co-authors of Solaris Performance and Tools [McDougall2007V2], Brendan Gregg, created this toolkit. It contains numerous d-scripts as well as Perl scripts that pre-process and post-process DTrace.  DTrace toolkit is included in Oracle Solaris 11 and the package name is dtrace-toolkit”.  In Oracle Solaris 10, We need to download the toolkit separately from oracle website.

 

Installation :

 

1. Download DTrace Toolkit package from Oracle website.  (only for Solaris 10).

 

Unzip the downloaded file and untar it. Navigate to the Bin directroy.

# mkdir -p /usr/dtrace/DTT
# cp DTraceToolkit.tar.gz /usr/dtrace/DTT
# cd /usr/dtrace/DTT
# gunzip DTraceToolkit.tar.gz
# tar -xf DTraceToolkit.tar
# cd DTraceToolkit-0.99/Bin
#

 

2. In Oracle Solaris 11, if you don’t see the path “/usr/dtrace/DTT”, then you need to install the package. Server should have local or oracle repo configured.

# pkg install dtrace-toolkit

 

3. Once the packages are ready, navigate to the Bin directory to find the pre-built DTrace scripts.

# cd Bin
# ls -lrt
total 230
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 pathopens.d -> ../Proc/pathopens.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 rb_funccalls.d -> ../Ruby/rb_funccalls.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 threaded.d -> ../Proc/threaded.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 pgpginbypid.d -> ../Mem/pgpginbypid.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 weblatency.d -> ../Apps/weblatency.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 writebytes.d -> ../Proc/writebytes.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 pl_subcalls.d -> ../Perl/pl_subcalls.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 fspaging.d -> ../FS/fspaging.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 rb_calls.d -> ../Ruby/rb_calls.d
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 py_calltime.d -> ../Python/py_calltime.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 hotspot.d -> ../Disk/hotspot.d
lrwxrwxrwx   1 100      other         24 Jun 12 09:20 js_objgc.d -> ../JavaScript/js_objgc.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 j_events.d -> ../Java/j_events.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 connections -> ../Net/connections
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 php_calldist.d -> ../Php/php_calldist.d
lrwxrwxrwx   1 100      other         27 Jun 12 09:20 js_flowtime.d -> ../JavaScript/js_flowtime.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 php_calltime.d -> ../Php/php_calltime.d
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 py_calldist.d -> ../Python/py_calldist.d
lrwxrwxrwx   1 100      other         13 Jun 12 09:20 wpm.d -> ../Misc/wpm.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 seeksize.d -> ../Disk/seeksize.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 lockbyproc.d -> ../Locks/lockbyproc.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 tcl_stat.d -> ../Tcl/tcl_stat.d
lrwxrwxrwx   1 100      other         12 Jun 12 09:20 statsnoop -> ../statsnoop
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 j_stat.d -> ../Java/j_stat.d
lrwxrwxrwx   1 100      other         12 Jun 12 09:20 fsrw.d -> ../FS/fsrw.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 pfilestat -> ../Proc/pfilestat
lrwxrwxrwx   1 100      other         15 Jun 12 09:20 vmstat.d -> ../Mem/vmstat.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 sh_calltime.d -> ../Shell/sh_calltime.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 tcl_flow.d -> ../Tcl/tcl_flow.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 sh_lines.d -> ../Shell/sh_lines.d
lrwxrwxrwx   1 100      other         14 Jun 12 09:20 woof.d -> ../Misc/woof.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 udpstat.d -> ../Net/udpstat.d
lrwxrwxrwx   1 100      other         13 Jun 12 09:20 vopstat -> ../FS/vopstat
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 topsyscall -> ../System/topsyscall
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 pl_calltime.d -> ../Perl/pl_calltime.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 php_flow.d -> ../Php/php_flow.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 rb_objcpu.d -> ../Ruby/rb_objcpu.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 py_malloc.d -> ../Python/py_malloc.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 anonpgpid.d -> ../Mem/anonpgpid.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 zvmstat -> ../Zones/zvmstat
lrwxrwxrwx   1 100      other         12 Jun 12 09:20 execsnoop -> ../execsnoop
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 sh_who.d -> ../Shell/sh_who.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 php_funccalls.d -> ../Php/php_funccalls.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 sh_cpudist.d -> ../Shell/sh_cpudist.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 sh_calldist.d -> ../Shell/sh_calldist.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 minfbypid.d -> ../Mem/minfbypid.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 pl_calldist.d -> ../Perl/pl_calldist.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 rwbytype.d -> ../Proc/rwbytype.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 tcpsnoop.d -> ../Net/tcpsnoop.d
lrwxrwxrwx   1 100      other         24 Jun 12 09:20 js_calls.d -> ../JavaScript/js_calls.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 rwbbypid.d -> ../Proc/rwbbypid.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 inttimes.d -> ../Cpu/inttimes.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 tcpstat.d -> ../Net/tcpstat.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 tcl_procflow.d -> ../Tcl/tcl_procflow.d
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 js_stat.d -> ../JavaScript/js_stat.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 tcl_flowtime.d -> ../Tcl/tcl_flowtime.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 intoncpu.d -> ../Cpu/intoncpu.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 tcl_proccalls.d -> ../Tcl/tcl_proccalls.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 pl_flow.d -> ../Perl/pl_flow.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 cputimes -> ../Kernel/cputimes
lrwxrwxrwx   1 100      other         15 Jun 12 09:20 guess.d -> ../Misc/guess.d
lrwxrwxrwx   1 100      other         24 Jun 12 09:20 js_execs.d -> ../JavaScript/js_execs.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 php_flowinfo.d -> ../Php/php_flowinfo.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 cpuwalk.d -> ../Cpu/cpuwalk.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 sh_calls.d -> ../Shell/sh_calls.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 j_calls.d -> ../Java/j_calls.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 j_syscalls.d -> ../Java/j_syscalls.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 putnexts.d -> ../Kernel/putnexts.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 rb_flowinfo.d -> ../Ruby/rb_flowinfo.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 j_profile.d -> ../Java/j_profile.d
lrwxrwxrwx   1 100      other          8 Jun 12 09:20 iotop -> ../iotop
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 sh_syscolors.d -> ../Shell/sh_syscolors.d
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 py_flowinfo.d -> ../Python/py_flowinfo.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 whatexec.d -> ../Kernel/whatexec.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 intbycpu.d -> ../Cpu/intbycpu.d
lrwxrwxrwx   1 100      other         12 Jun 12 09:20 hotkernel -> ../hotkernel
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 tcpsnoop_snv -> ../Net/tcpsnoop_snv
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 kstat_types.d -> ../Kernel/kstat_types.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 rb_lines.d -> ../Ruby/rb_lines.d
lrwxrwxrwx   1 100      other         14 Jun 12 09:20 kill.d -> ../Proc/kill.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 vmbypid.d -> ../Mem/vmbypid.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 vmstat-p.d -> ../Mem/vmstat-p.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 j_flowtime.d -> ../Java/j_flowtime.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 pl_cputime.d -> ../Perl/pl_cputime.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 creatbyproc.d -> ../Proc/creatbyproc.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 modcalls.d -> ../Kernel/modcalls.d
lrwxrwxrwx   1 100      other         24 Jun 12 09:20 py_mallocstk.d -> ../Python/py_mallocstk.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 php_malloc.d -> ../Php/php_malloc.d
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 js_flow.d -> ../JavaScript/js_flow.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 readdist.d -> ../Proc/readdist.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 php_syscalls.d -> ../Php/php_syscalls.d
lrwxrwxrwx   1 100      other         25 Jun 12 09:20 js_objnew.d -> ../JavaScript/js_objnew.d
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 py_syscalls.d -> ../Python/py_syscalls.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 j_thread.d -> ../Java/j_thread.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 py_who.d -> ../Python/py_who.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 j_calltime.d -> ../Java/j_calltime.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 pl_cpudist.d -> ../Perl/pl_cpudist.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 sh_flowtime.d -> ../Shell/sh_flowtime.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 sysbypid.d -> ../Proc/sysbypid.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 php_who.d -> ../Php/php_who.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 pl_flowtime.d -> ../Perl/pl_flowtime.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 rb_objnew.d -> ../Ruby/rb_objnew.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 minfbyproc.d -> ../Mem/minfbyproc.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 sh_wasted.d -> ../Shell/sh_wasted.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 shellsnoop -> ../Apps/shellsnoop
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 newproc.d -> ../Proc/newproc.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 readbytes.d -> ../Proc/readbytes.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 rb_calltime.d -> ../Ruby/rb_calltime.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 iofile.d -> ../Disk/iofile.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 tcptop_snv -> ../Net/tcptop_snv
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 icmpstat.d -> ../Net/icmpstat.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 pidpersec.d -> ../Proc/pidpersec.d
lrwxrwxrwx   1 100      other         13 Jun 12 09:20 tcptop -> ../Net/tcptop
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 j_cputime.d -> ../Java/j_cputime.d
lrwxrwxrwx   1 100      other         25 Jun 12 09:20 syscallbysysc.d -> ../System/syscallbysysc.d
lrwxrwxrwx   1 100      other         24 Jun 12 09:20 py_funccalls.d -> ../Python/py_funccalls.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 pl_who.d -> ../Perl/pl_who.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 rb_calldist.d -> ../Ruby/rb_calldist.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 j_calldist.d -> ../Java/j_calldist.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 cswstat.d -> ../Kernel/cswstat.d
lrwxrwxrwx   1 100      other         13 Jun 12 09:20 rfsio.d -> ../FS/rfsio.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 sampleproc -> ../Proc/sampleproc
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 js_who.d -> ../JavaScript/js_who.d
lrwxrwxrwx   1 100      other         24 Jun 12 09:20 py_syscolors.d -> ../Python/py_syscolors.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 j_cpudist.d -> ../Java/j_cpudist.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 rb_cputime.d -> ../Ruby/rb_cputime.d
lrwxrwxrwx   1 100      other         10 Jun 12 09:20 rwsnoop -> ../rwsnoop
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 j_syscolors.d -> ../Java/j_syscolors.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 sh_syscalls.d -> ../Shell/sh_syscalls.d
lrwxrwxrwx   1 100      other         15 Jun 12 09:20 runocc.d -> ../Cpu/runocc.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 pl_syscalls.d -> ../Perl/pl_syscalls.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 iopending -> ../Disk/iopending
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 sh_pidcolors.d -> ../Shell/sh_pidcolors.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 sh_flowinfo.d -> ../Shell/sh_flowinfo.d
lrwxrwxrwx   1 100      other         15 Jun 12 09:20 rfileio.d -> ../FS/rfileio.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 tcl_calltime.d -> ../Tcl/tcl_calltime.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 rb_flow.d -> ../Ruby/rb_flow.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 pridist.d -> ../Kernel/pridist.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 rb_cpudist.d -> ../Ruby/rb_cpudist.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 pl_syscolors.d -> ../Perl/pl_syscolors.d
lrwxrwxrwx   1 100      other         14 Jun 12 09:20 fddist -> ../Proc/fddist
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 rb_stat.d -> ../Ruby/rb_stat.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 pl_flowinfo.d -> ../Perl/pl_flowinfo.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 php_flowtime.d -> ../Php/php_flowtime.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 tcl_who.d -> ../Tcl/tcl_who.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 j_objnew.d -> ../Java/j_objnew.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 xcallsbypid.d -> ../Cpu/xcallsbypid.d
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 py_flowtime.d -> ../Python/py_flowtime.d
lrwxrwxrwx   1 100      other         10 Jun 12 09:20 dvmstat -> ../dvmstat
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 filebyproc.d -> ../Proc/filebyproc.d
lrwxrwxrwx   1 100      other         15 Jun 12 09:20 crash.d -> ../Proc/crash.d
lrwxrwxrwx   1 100      other         14 Jun 12 09:20 procsystime -> ../procsystime
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 httpdstat.d -> ../Apps/httpdstat.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 sh_cputime.d -> ../Shell/sh_cputime.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 tcl_calldist.d -> ../Tcl/tcl_calldist.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 j_flow.d -> ../Java/j_flow.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 pl_malloc.d -> ../Perl/pl_malloc.d
lrwxrwxrwx   1 100      other         14 Jun 12 09:20 loads.d -> ../Cpu/loads.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 rwbypid.d -> ../Proc/rwbypid.d
lrwxrwxrwx   1 100      other          9 Jun 12 09:20 dtruss -> ../dtruss
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 dapptrace -> ../Proc/dapptrace
lrwxrwxrwx   1 100      other         10 Jun 12 09:20 iosnoop -> ../iosnoop
lrwxrwxrwx   1 100      other         15 Jun 12 09:20 j_who.d -> ../Java/j_who.d
lrwxrwxrwx   1 100      other         12 Jun 12 09:20 dexplorer -> ../dexplorer
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 sigdist.d -> ../Proc/sigdist.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 dappprof -> ../Proc/dappprof
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 j_methodcalls.d -> ../Java/j_methodcalls.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 py_cputime.d -> ../Python/py_cputime.d
lrwxrwxrwx   1 100      other         23 Jun 12 09:20 syscallbyproc.d -> ../Proc/syscallbyproc.d
lrwxrwxrwx   1 100      other         25 Jun 12 09:20 js_objcpu.d -> ../JavaScript/js_objcpu.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 bitesize.d -> ../Disk/bitesize.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 writedist.d -> ../Proc/writedist.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 py_flow.d -> ../Python/py_flow.d
lrwxrwxrwx   1 100      other         27 Jun 12 09:20 js_flowinfo.d -> ../JavaScript/js_flowinfo.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 rb_syscalls.d -> ../Ruby/rb_syscalls.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 setuids.d -> ../User/setuids.d
lrwxrwxrwx   1 100      other         10 Jun 12 09:20 errinfo -> ../errinfo
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 py_cpudist.d -> ../Python/py_cpudist.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 dnlcps.d -> ../Kernel/dnlcps.d
lrwxrwxrwx   1 100      other         12 Jun 12 09:20 iopattern -> ../iopattern
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 rb_syscolors.d -> ../Ruby/rb_syscolors.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 shortlived.d -> ../Proc/shortlived.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 tcl_insflow.d -> ../Tcl/tcl_insflow.d
lrwxrwxrwx   1 100      other         15 Jun 12 09:20 tcpsnoop -> ../Net/tcpsnoop
lrwxrwxrwx   1 100      other         14 Jun 12 09:20 xvmstat -> ../Mem/xvmstat
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 swapinfo.d -> ../Mem/swapinfo.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 dnlcstat -> ../Kernel/dnlcstat
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 dnlcsnoop.d -> ../Kernel/dnlcsnoop.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 lastwords -> ../Proc/lastwords
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 stacksize.d -> ../Proc/stacksize.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 tcl_calls.d -> ../Tcl/tcl_calls.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 sh_flow.d -> ../Shell/sh_flow.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 tcpwdist.d -> ../Net/tcpwdist.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 tcl_syscolors.d -> ../Tcl/tcl_syscolors.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 pgpginbyproc.d -> ../Mem/pgpginbyproc.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 topsysproc -> ../Proc/topsysproc
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 j_package.d -> ../Java/j_package.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 sar-c.d -> ../System/sar-c.d
lrwxrwxrwx   1 100      other         10 Jun 12 09:20 hotuser -> ../hotuser
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 py_profile.d -> ../Python/py_profile.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 rb_flowtime.d -> ../Ruby/rb_flowtime.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 php_cputime.d -> ../Php/php_cputime.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 mmapfiles.d -> ../Proc/mmapfiles.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 priclass.d -> ../Kernel/priclass.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 rb_who.d -> ../Ruby/rb_who.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 php_cpudist.d -> ../Php/php_cpudist.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 uname-a.d -> ../System/uname-a.d
lrwxrwxrwx   1 100      other         27 Jun 12 09:20 js_calltime.d -> ../JavaScript/js_calltime.d
lrwxrwxrwx   1 100      other          8 Jun 12 09:20 rwtop -> ../rwtop
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 rb_malloc.d -> ../Ruby/rb_malloc.d
lrwxrwxrwx   1 100      other         27 Jun 12 09:20 js_calldist.d -> ../JavaScript/js_calldist.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 tcl_ins.d -> ../Tcl/tcl_ins.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 tcpsnoop_snv.d -> ../Net/tcpsnoop_snv.d
lrwxrwxrwx   1 100      other         12 Jun 12 09:20 opensnoop -> ../opensnoop
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 tcl_syscalls.d -> ../Tcl/tcl_syscalls.d
lrwxrwxrwx   1 100      other         16 Jun 12 09:20 diskhits -> ../Disk/diskhits
lrwxrwxrwx   1 100      other         26 Jun 12 09:20 js_cputime.d -> ../JavaScript/js_cputime.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 syscallbypid.d -> ../Proc/syscallbypid.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 sh_stat.d -> ../Shell/sh_stat.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 j_classflow.d -> ../Java/j_classflow.d
lrwxrwxrwx   1 100      other         22 Jun 12 09:20 php_syscolors.d -> ../Php/php_syscolors.d
lrwxrwxrwx   1 100      other         19 Jun 12 09:20 nfswizard.d -> ../Apps/nfswizard.d
lrwxrwxrwx   1 100      other         21 Jun 12 09:20 lockbydist.d -> ../Locks/lockbydist.d
lrwxrwxrwx   1 100      other         26 Jun 12 09:20 js_cpudist.d -> ../JavaScript/js_cpudist.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 tcl_cputime.d -> ../Tcl/tcl_cputime.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 iofileb.d -> ../Disk/iofileb.d
lrwxrwxrwx   1 100      other         18 Jun 12 09:20 cpudists -> ../Kernel/cpudists
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 cputypes.d -> ../Cpu/cputypes.d
lrwxrwxrwx   1 100      other         20 Jun 12 09:20 tcl_cpudist.d -> ../Tcl/tcl_cpudist.d
lrwxrwxrwx   1 100      other         17 Jun 12 09:20 dispqlen.d -> ../Cpu/dispqlen.d
#

 

4. To know the top system calls, use the following script.

:# ./topsyscall 1 10
Tracing... Please wait.
2018 May 24 11:23:06, load average: 0.00, 0.00, 0.00   syscalls: 604

   SYSCALL                          COUNT
   adjtime                              1
   fstat                                1
   mmap                                 1
   schedctl                             1
   setcontext                           1
   sigsuspend                           1
   read                                 2
   stat                                 3
   sysconfig                            3
   write                                3
   sigaction                            4
   gtime                                5
   brk                                  6
   pollsys                              8
   lwp_park                             9
   lwp_sigmask                         13
   p_online                           256
   ioctl                              286
2018 May 24 11:23:07, load average: 0.00, 0.00, 0.00   syscalls: 381

   SYSCALL                          COUNT
   adjtime                              1
   fstat                                1
   mmap                                 1
   setcontext                           1
   sigsuspend                           1
   stat                                 1
   close                                2
   lwp_park                             2
   open                                 2
   pset                                 2
   brk                                  4
   read                                 5
   pollsys                              9
   lwp_sigmask                         11
   gtime                               12
   write                               26
   ioctl                              300

 

5. Here is another example to identify the CPU time.

# ./cputimes -at 8 5
2018 May 24 11:05:10,
         THREADS        TIME (ns)
         nbdisco           356080
           xntpd           416870
           kslog           616290
          dtrace          2879610
          filmon         10186430
         fsflush         31015160
          KERNEL         54456080
            IDLE      55791700420
2018 May 24 11:05:15,
         THREADS        TIME (ns)
           xntpd           419660
             fmd           466290
           kslog           639300
          dtrace          4409410
         fsflush          5664960
          filmon          6399760
          KERNEL         51839790
            IDLE      59893010430

 

6. To find wich LUN’s are heavily used in the system, use “iotop” script.

# ./iotop
Tracing... Please wait.
2018 Jun 12 08:04:27,  load: 0.93,  disk_r: 423853 KB,  disk_w:  56700 KB

  UID    PID   PPID CMD              DEVICE  MAJ MIN D            BYTES
    0      0      0 sched            ssd162  242 1296 W             4096
    0      0      0 sched            ssd450  242 3600 W             4096
    0      0      0 sched            ssd452  242 3616 W             4096
    0      0      0 sched            ssd453  242 3624 W             4096
    0      0      0 sched            ssd454  242 3632 W             4096
    0      0      0 sched            ssd456  242 3648 W             4096
    0      0      0 sched            ssd460  242 3680 W             4096
    0      0      0 sched            ssd57   242 456 W             4096
    0      0      0 sched            ssd473  242 3784 R             6656
    0      0      0                  ssd51   242 408               7168
    0      0      0 sched            ssd399  242 3192 W             8192

 

There are almost 230 DTrace scripts available on the toolkit. You could give a try and it’s really helpful to identify the system bottlenecks. In one of my post, I have written manual DTrace query to identify the high kernel usage cause. But the pre-built scripts looks so easy compared to the manual queries.

Exit mobile version