Sitraka PerformaSure: Performance Analysis for J2EE Applications
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.
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 is their standard, single-VM profiling tool. It also integrates well with PerformaSure.
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 widgets over the years. JavaBeans components for use in client-side applets and applications.
JClass Server Views
This is a similar set of widgets, but designed to be rendered on the server, complete with imagemap based HTML UI generation, and a number of other clever features. It also works around one of the weaknesses of Java up through 1.3: until then, the AWT was limited to the color depth of the frame buffer installed on the server. Creating graphics in millions of colors required a really good (and expensive) video card on a server that was typically running headless. This product eliminates the dependency on a Java runtime on the client, and can be used to create UIs in GIF, JPEG, and even PDF.
An older set of AWT widgets, which Sitraka is now making available for free.
Their roots are showing in this product. XRT PDS is a rich set of Motif widgets.