The people at Sitraka have made a name for themselves in performance analysis with JProbe. If you were having performance issues with a Java application running in a single VM, JProbe was a great way to figure out where the problem was.
Of course, if the application in question was a multi-tier J2EE application, load-balanced, segmented, and distributed across ten machines, isolating performance problems with JProbe was a little tricky, to say the least. You could still watch one
subsystem, running in a single VM, and hopefully see something that didn’t look
right from a performance perspective, but this style of ‘performance analysis’
is almost as hit-or-miss as just staring at your code and trying to figure out
why it’s slow. It’s not much use to know that, say, 10 percent of the time your
application takes is in allocating string objects. What you really want is to
be able to watch your application running under load and then see which
requests are taking too long to process, and in the context of that call chain,
which method in which application on which machine seems to be causing the
problem.
The performance monitoring tools used to instrument the various VMs, although very lightweight, are designed to be used in a testing environment, and not on a live deployed application. |
To address this need, Sitraka developed PerformaSure, a new profiling product designed to let you identify performance problems in context, under load, and across multiple tiers. This way, you can track a single request, from the Web server, through
the servlet or JSP container through an EJB server, perhaps into another EJB
server, and eventually off into a database somewhere. PerformaSure instruments
each tier in your test environment and collects performance statistics, and
then pieces the data together into a cohesive picture by using what they call tag
and follow technology. They then display all this information for you in views similar to those you’d find in a single-VM performance tool like JProbe or Optimize-it, and identify hotspots. As when using a single-VM profiler, often your problem area will be immediately obvious (like when you see that one particular method in your EJB server is taking 3 seconds to complete what you thought was going to be a trivial call,)
but even if the trouble is more subtle, you can quickly examine a large number
of call chains to see what’s really happening inside your app.
You can also use tag and follow to help you improve response time for specific requests, or do more subtle performance tuning. And because the profiling takes place under load (PerformaSure is designed to work with Mercury Interactive LoadRunner for load testing) you can be more certain of how your application will run once it’s
live.
What PerformaSure Helps You to Detect
- Discover general performance bottlenecks across a large n-tier application
- Isolate network latency problems from code-related problems
- Isolate database server bottlenecks from Java bottlenecks
- Isolate hardware dependencies
- Discover if your EJBs aren’t really being load balanced like you think they are.
Limitations
There are some limitations you should be aware of, particularly if the idea of getting this kind of information about your own EJB app has you drooling.
Supported platforms:
First, if you don’t use WebLogic, you’re out of luck. To date, the only EJB server PerformaSure supports is WebLogic 6.0 or 6.1 (WebSphere support is coming next month). Supported Web servers are: Apache 1.3.14 or later, Microsoft IIS 5.0 or later, iPlanet 4.1, or the Web servers embedded in WebLogic 6.0 or 6.1. The app itself needs to run on Windows 2000 SP 2 or later, or on Solaris 2.6, 7 or 8.
Development Time, not Deployment Time
The performance monitoring tools used to instrument the various VMs, although very lightweight, are designed to be used in a testing environment, and not on a live deployed
application. This is, of course, a sensible way to do your testing: before you
roll your product out to customers; however if you find that there is some
subtle difference between your testing environment and your live environment,
or some problem only shows up under specific kinds of load patterns, you may
have your work cut out for you in trying to replicate the failure mode in your
testing environment.
Sitraka is aware of this difference, but has (sensibly, in my opinion) focused its attention on where developers are feeling the most pain: during initial development. The fact is, most J2EE applications currently being worked on are still in the initial
development stage at this point, and have yet to be deployed anyway. Hopefully,
PerformaSure will help shorten time to market for some of these applications,
along with improving initial quality and customer acceptance, by helping
developers to identify problems in the development and initial QA phases,
rather than having to have performance inadequacies pointed out to them by
customers or by the occasional large catastrophic failure after deployment.
Sitraka Products at a Glance | |
In addition to PerformaSure, Sitraka has a number of other products, in two basic categories, performance tools and user interface components. | |
Performance Tools | UI Components |
JProbe JProbe is their standard, single-VM profiling tool. It also integrates well with PerformaSure. Deploy Director Manages rich client deployment for J2EE applications |
This was once the core of their business, back when they were known as KL Group. JClass Desktop Views This is the classic JClass widget library, which has been steadily improved with new JClass Server Views This is a similar set of widgets, but designed to be rendered on the server, complete with JClass BWT An older set of AWT widgets, which Sitraka is now making XRT PDS Their roots are showing in this product. XRT PDS is a rich set of Motif widgets. |