Cross Platform
Dtrace tool is an Excellent tool (tracing Utility) i have used and comes with Solaris-10 Version.
Some of its functionalities mentioned below,
And about AIX Probvue : its comes with AIX6.0 and onwards and a powerful tracing Utility in AIX platform.
WE can get the info about it @ http://www.ibm.com/developerworks/wikis/display/WikiPtype/Probevue
How to Use Dtrace at command line Prompt:
Solaris, FreeBSD, MacOS - | : Dtrace |
Linux - | : kprobe-based SystemTap |
AIX - | : probevue |
Dtrace tool is an Excellent tool (tracing Utility) i have used and comes with Solaris-10 Version.
Some of its functionalities mentioned below,
- dynamic kernel tracing (fbt:::) | - iSCSI tracing (iscsitgt*:::) |
- static kernel tracing (sdt:::) | - X11 tracing (Xserver*:::) |
- kernel profiling (profile:::) | - kernel stack tracing (stack()) |
- high resolution profiling (cyclics) | - process stack tracing (ustack()) |
- anonymous tracing (dtrace -a) | - java stack tracing (jstack()) |
- postmortem tracing (mdb) | - aggregations (@, printa()) |
- dynamic process tracing (pid:::) | - predicates (//) |
- static process tracing (sdt:::) | - thread local storage (self->) |
- dynamic process instruction tracing (pid:::) | - clause local storage (this->) |
- process profiling (profile:::) | - speculative tracing (speculate()) |
- syscall tracing (syscall:::) | - is-enabled probes (*_ENABLED) |
- kernel lock tracing (lockstat:::) | - switch buffers (bufpolicy=switch) |
- user lock tracing (plockstat:::) | - ring buffers (bufpolicy=ring) |
- system info tracing (sysinfo:::) | - fill buffers (bufpolicy=fill) |
- virtual memory tracing (vminfo:::) | - translators (translator ) |
- scheduler tracing (sched:::) | - privileges (dtrace_proc, ...) |
- process event tracing (proc:::) | - DTrace test suite (SUNWdtrt) |
- I/O tracing (io::: disk/nfs) | - scriptability (#!/usr/sbin/dtrace -s) |
- filesystem tracing (fsinfo:::, fbt:::) | - cacheable predicates |
- system event tracing (sysevent:::) | - stability framework |
- Java tracing (hotspot*:::) | - JNI Binding |
- JavaScript tracing (javascript*:::) | - chime GUI |
- Ruby tracing (ruby*:::) |
And about AIX Probvue : its comes with AIX6.0 and onwards and a powerful tracing Utility in AIX platform.
WE can get the info about it @ http://www.ibm.com/developerworks/wikis/display/WikiPtype/Probevue
How to Use Dtrace at command line Prompt:
# New processes with arguments, dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }' # Files opened by process, dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }' # Syscall count by program, dtrace -n 'syscall:::entry { @num[execname] = count(); }' # Syscall count by syscall, dtrace -n 'syscall:::entry { @num[probefunc] = count(); }' # Syscall count by process, dtrace -n 'syscall:::entry { @num[pid,execname] = count(); }' # Read bytes by process, dtrace -n 'sysinfo:::readch { @bytes[execname] = sum(arg0); }' # Write bytes by process, dtrace -n 'sysinfo:::writech { @bytes[execname] = sum(arg0); }' # Read size distribution by process, dtrace -n 'sysinfo:::readch { @dist[execname] = quantize(arg0); }' # Write size distribution by process, dtrace -n 'sysinfo:::writech { @dist[execname] = quantize(arg0); }' # Disk size by process, dtrace -n 'io:::start { printf("%d %s %d",pid,execname,args[0]->b_bcount); }' # Pages paged in by process, dtrace -n 'vminfo:::pgpgin { @pg[execname] = sum(arg0); }' # Minor faults by process, dtrace -n 'vminfo:::as_fault { @mem[execname] = sum(arg0); }' # Interrupts by CPU, dtrace -n 'sdt:::interrupt-start { @num[cpu] = count(); }' # New processes with arguments and time, dtrace -qn 'syscall::exec*:return { printf("%Y %s\n",walltimestamp,curpsinfo->pr_psargs); }' # Successful signal details, dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }' [Special Thanks to Source http://www.brendangregg.com/dtrace.html]