[dtrace-discuss] AIX: dtrace?

Brendan Gregg - Sun Microsystems
Thu, 24 May 2007 03:47:37 -0000

On Wed, May 23, 2007 at 09:45:41AM -0700, Bryan Cantrill
wrote:
>
> > BC> I think it''s safe to say that IBM is ignoring my
suggestion:
> >
> > BC>   http://blogs.sun.com/bmc/entry/dtrace_on_aix
> >
> > BC> As for "probevue", we know very little about it
(googling for "probevue"
> > BC> current yields three hits:  one is the link you quoted, one is
some
> > BC> blog entry saying that this "sure as hell sounds like
DTrace" and the
> > BC> last is in Russian).  From the little that we do know, it seems
unlikely
> > BC> to be a holistic DTrace-like solution, but we''ll
see...
> >
> > Perhaps it would be interesting if someone would install and check AIX
6 Open
> > Beta - I don''t have a free POWER server nearby.
>
> Yes, that would be great.  I don''t think the Open Beta is
available yet,
> but if anyone is both a DTrace user and an AIX customer, it would be great
> to see a comparison of probevue and DTrace once the former is in Beta...

Sounds interesting - if someone does check out probevue, the following are
some of the Solaris DTrace features to compare against:

Solaris DTrace features (mostly from memory),

	- dynamic kernel tracing		(fbt:::)
	- static kernel tracing			(sdt:::)
	- kernel profiling			(profile:::)
	- high resolution profiling		(cyclics)
	- anonymous tracing			(dtrace -a)
	- postmortem tracing			(mdb)
	- dynamic process tracing		(pid:::)
	- static process tracing		(sdt:::)
	- dynamic process instruction tracing	(pid:::)
	- process profiling 			(profile:::)
	- syscall tracing			(syscall:::)
	- kernel lock tracing			(lockstat:::)
	- user lock tracing			(plockstat:::)
	- system info tracing			(sysinfo:::)
	- virtual memory tracing		(vminfo:::)
	- scheduler tracing			(sched:::)
	- process event tracing			(proc:::)
	- I/O tracing				(io::: disk/nfs)
	- filesystem tracing			(fsinfo:::, fbt:::)
	- system event tracing			(sysevent:::)
	- Java tracing				(hotspot*:::)
	- JavaScript tracing			(javascript*:::)
	- Ruby tracing				(ruby*:::)
	- iSCSI tracing				(iscsitgt*:::)
	- X11 tracing				(Xserver*:::)
	- kernel stack tracing			(stack())
	- process stack tracing			(ustack())
	- java stack tracing			(jstack())
	- aggregations				(@, printa())
	- predicates				(//)
	- thread local storage			(self->)
	- clause local storage			(this->)
	- speculative tracing			(speculate())
	- is-enabled probes			(*_ENABLED)
	- switch buffers			(bufpolicy=switch)
	- ring buffers				(bufpolicy=ring)
	- fill buffers				(bufpolicy=fill)
	- translators				(translator <>)
	- privileges				(dtrace_proc, ...)
	- DTrace test suite			(SUNWdtrt)
	- scriptability				(#!/usr/sbin/dtrace -s)
	- cacheable predicates
	- stability framework
	- JNI Binding
	- chime GUI

A few of those features the latest Solaris bits, and/or additional
providers to be downloaded and added.

Sorry if I missed something important.. And of course, there are more
DTrace features in the works.

Perhaps worth mentioning are the indirect features one gets with DTrace,
such as:

	- DTrace community			(us!)
	- Dynamic Tracing Guide			(PDF/html, docs.sun.com)
	- DTraceToolkit				(100+ scripts)
	- Production since 2005

Brendan

--
Brendan
[CA, USA]