Is it possible to use DTrace to zero in on the performance of Java apps running in our webserver? Specifically, the webserver kernel process, webservd, is running a jvm, and in that jvm run the deployed web applications. Servlets, jsps, etc. I would like to zero in on the performance of the java class methods. My current tool, LoadRunner, can return data on the main servlet, but it stops there. I would like to have data on the routines/class methods that the servlet calls. (Much like the net beans profiler.) On the other hand, info on the kernel system calls is too detailed. Can DTrace trace back a particular problem prone system call to the java class causing the problem? (The java class is buried in the jvm which is embedded in the unix process....) Thanks, Russ
On 10/11/06, Russ Petruzzelli <Russ.Petruzzelli at sun.com> wrote:> Is it possible to use DTrace to zero in on the performance of Java apps > running in our webserver?... As I understand it, there is in fact a java DTrace provider, so you should be able to do what you want with something similar to dtrace -n''java:::'' -p PidOfAppserver where of course you''d fill in the blanks in "java:::" to track your function name etc cheers, James C. McPherson -- Solaris kernel software engineer, system admin and troubleshooter http://www.jmcp.homeunix.com/blog Find me on LinkedIn @ http://www.linkedin.com/in/jamescmcpherson
Hey Russ, You might want to take a look at my presentation from one of the last two JavaOne conferences: http://blogs.sun.com/roller/page/ahl?entry=dtrace_presentation_at_javaone http://blogs.sun.com/ahl/entry/javaone_dtrace_session_2006 Adam On Tue, Oct 10, 2006 at 03:46:39PM -0700, Russ Petruzzelli wrote:> Is it possible to use DTrace to zero in on the performance of Java apps > running in our webserver? > Specifically, the webserver kernel process, webservd, is running a jvm, > and in that jvm run the deployed web applications. Servlets, jsps, etc. > I would like to zero in on the performance of the java class methods. My > current tool, LoadRunner, can return data on the main servlet, but it > stops there. I would like to have data on the routines/class methods > that the servlet calls. (Much like the net beans profiler.) > > On the other hand, info on the kernel system calls is too detailed. > Can DTrace trace back a particular problem prone system call to the java > class causing the problem? (The java class is buried in the jvm which > is embedded in the unix process....) > > Thanks, > Russ > _______________________________________________ > dtrace-discuss mailing list > dtrace-discuss at opensolaris.org-- Adam Leventhal, Solaris Kernel Development http://blogs.sun.com/ahl
There are also DTrace samples available in JDK6. They are located here: JAVA_HOME/sample/dtrace/ -katya Adam Leventhal wrote:>Hey Russ, > >You might want to take a look at my presentation from one of the last two >JavaOne conferences: > > http://blogs.sun.com/roller/page/ahl?entry=dtrace_presentation_at_javaone > http://blogs.sun.com/ahl/entry/javaone_dtrace_session_2006 > >Adam > >On Tue, Oct 10, 2006 at 03:46:39PM -0700, Russ Petruzzelli wrote: > > >>Is it possible to use DTrace to zero in on the performance of Java apps >>running in our webserver? >>Specifically, the webserver kernel process, webservd, is running a jvm, >>and in that jvm run the deployed web applications. Servlets, jsps, etc. >>I would like to zero in on the performance of the java class methods. My >>current tool, LoadRunner, can return data on the main servlet, but it >>stops there. I would like to have data on the routines/class methods >>that the servlet calls. (Much like the net beans profiler.) >> >>On the other hand, info on the kernel system calls is too detailed. >>Can DTrace trace back a particular problem prone system call to the java >>class causing the problem? (The java class is buried in the jvm which >>is embedded in the unix process....) >> >>Thanks, >>Russ >>_______________________________________________ >>dtrace-discuss mailing list >>dtrace-discuss at opensolaris.org >> >> > > >