Archive
Posts in DTrace
Cool video on the DTrace port to Linux
This is a solid video: I can't wait until DTrace is readily available in Linux!!
$ read more →Using Solaris source code + DTrace
Brian Leonard wrote an excellent blog postabout how to use DTrace, how to show details about specific probes, and then using the source code in conjunction with his findings to understand exactly what was happening within that probe. if you're starting to deep dive into DTrace, this is an excellent article for learning these crucial steps!
$ read more →Instrumenting Java code with JSDT probes
A few months back, I got wind from the world famous Jarod Jenson that Keith McGuigan was working on adding JSDT probes to Java. JSDT probes struck me as an extremely useful feature for realtime problem analysis, so I decided to instrument some sample code to see how they worked. After a couple of e-mail exchanges with Keith, I had a working Java build that supported JSDT. After reviewing a number of Java projects, I chose to instrument the PostgreSQL Java type IV driver, since I wanted to learn PostgreSQL along with JDBC…
$ read more →Using the DTrace hotspot provider to observe java object allocations
In my previous post, I discussed how jmap can be used to view the contents of the Java heap. Jmap is a wonderful utility for viewing heap utilization at a specific point in time, but it's not the best utiltiy for answer questions like "which call stack is allocating objects of type foo?", or "how many objects are being allocated per second?", or "what is the average size of allocated objects?". To answer these types of questions, we need to look to a more thorough instrumentation framework. One such framework is the DTrace hotspot provider which was introduced in Java 6, and provides a number of probes to dynamically instrument Java applications…
$ read more →Enabling the DTrace hotspot provider after the JVM starts
While debugging a JVM performance issue a while back, I encountered the following error when I enabled the DTrace hotspot provider: After a bit of debugging, I figured out that the jinfo command needs to be run by the user the JVM runs as. Hopefully this will help others who encounter this annoying problem.
$ read more →