DTrace

WebHome | UnixGeekTools | Geekfarm | About This Site

Pointers

DTraceToolkit

Cookbook

Java

Perl

Freebsd port

One-liners

# 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); }'

note from sun

I've spoken to some of you about the new DTrace facility in Solaris 10. DTrace provides detailed and dynamic system and application (including Java) performance info even on a live production system. Customers and ISVs are using DTrace to get 2-1000x performance improvement out of their applications on Solaris and identify longstanding system performance issues that were previously impossible to troubleshoot. Technology is available on both the SPARC and Intel versions of S10. If you're interested in this technology a good starting point is:

http://www.sun.com/bigadmin/content/dtrace/

Since S10 does not FCS until December, some customers are using Solaris 10 DTrace (via Solaris http://wwws.sun.com/software/solaris/solaris-express/sol_index.html Express) in their test labs to do detailed analysis on application binaries deployed on S8 or earlier, fixing the bottlenecks using Dtrace on S10, and then returning the optimized code to production S8 systems until they are ready to move to S10.

I've also attached a technical whitepaper that explains how DTrace works and compares to other commercial and public-domain performance analysis technologies. Paper was presented at this year's USENIX Technical http://www.usenix.org/events/usenix04/index.html conference in Boston.

Let me know if you would be interested in a webinar on this technology.

--michael





Updated Tue May 8, 2007 5:09 PM