A wide variety of vendors provides performance testing and analysis tools. Rick Hower's web site, the Software QA/Test Resource Center, provides a listing of tools. [1] In this appendix, we provide a shorter list of common tools.
Java ProfilersUse a Java profiler tool during the development of any Java application to identify performance hot-spots in the application code. Also, the tools prove useful in analyzing object creation rates, finding memory leaks, and many other important performance analysis tasks . Several companies provide profiling tools. Two widely used profilers are Sitraka JProbe and VMGEAR Optimizeit (recently purchased by Borland). In addition, IBM recently released profiling function in the IBM WebSphere Studio Application Developer. IBM WebSphere Application Developer WorkbenchThe WebSphere Application Developer Workbench provides monitoring and profiling tools for recognizing, isolating, and fixing performance problems. You use the tool to view, among other things, object creation and garbage collection, execution sequences, thread interactions, and object references from within the development environment. Sitraka JProbe SuiteSitraka JProbe Suite provides performance profiling, memory debugging, code coverage, and thread analysis capabilities in one integrated suite, designed for Java developers. JProbe Suite includes the JProbe Profiler, Threadalyzer, and Coverage. VMGEAR OptimizeitThe Optimizeit Suite includes three integrated tools for tuning performance throughout the development cycle. Optimizeit also supports tracking down performance bottlenecks, correcting memory leaks, and uncovering thread contention . Java Profiler Product Summary
Performance Test ToolsAt least fifty different performance test tools products exist. [2] In Chapters 7 and 8, we provide examples using two popular tools, Mercury Interactive LoadRunner and Segue SilkPerformer, and provide a more complete listing of available performance test tools here. Many of these companies also provide performance monitoring and functional test products.
Apache's ApacheBenchApacheBench is an Internet Benchmarking tool that comes (free) with the Apache Web Server. See <http://httpd.apache.org/docs/programs/ab.html>. Apache JmeterApache Jmeter is a 100% pure Java desktop application designed to load test functional behavior and measure performance. It is part of the Jakarta project at <http://jakarta.apache.org/jmeter/index.html>. Compuware QALoadQALoad simulates load generated by many users on your application. The company also provides a Script Development Workbench for developing test scripts, and test results are available in a variety of reports , graphs, and charts . Compuware also provides testing and monitoring products. Empirix e-LoadThe e-Load tool provides a scalability testing solution designed specifically for the web. It provides real-time, detailed performance views for each tier of the system under test, as well as supporting customized reports. Empirix also provides functional testing and monitoring products. Mercury Interactive Astra LoadTestMercury offers Astra LoadTest, a load driver tool for smaller web sites. Astra LoadTest focuses on supporting HTTP-based testing and includes real-time graphing and monitoring of operating systems, HTTP servers, application servers, and databases. Mercury Interactive LoadRunnerLoadRunner is Mercury's high-end, scalable, automated load testing solution. LoadRunner includes real-time graphing and monitoring of an extensive set of operating systems, web servers, application servers, and databases. Mercury Interactive also provides functional testing and monitoring products. Quest Benchmark FactoryBenchmark Factory provides a scalable load testing, capacity planning, and performance tuning tool. Benchmark Factory allows you to determine system capacity, pinpoint system bottlenecks, and isolate system stress related problems. Quest also provides performance analysis and monitoring products. Rational Suite TestStudioRational Suite TestStudio supports performance testing via simulating virtual testers. Rational provides support to build complex usage scenarios and produce realistic system loads. They also provide development and testing products. RadView Software WebLOADWebLOAD simulates real-life Internet user behaviors and reports performance issues and bottlenecks within an application to help companies successfully deploy high-performing e-business applications. RadView also provides functional testing tools. Segue SilkPerformerSegue's SilkPerformer lets you simulate the fluctuating demands of a live e-business environment. SilkPerformer can predict the scalability and performance of your web application, ensuring its reliability before it goes live. Segue also provides functional test and monitoring products. Load Driver Summary
Java Application Performance MonitoringMany of the load driver tools listed above provide integrated performance monitors to collect data during testing. In addition, we'd like to mention a new class of product for Java applications: performance monitoring tools. Consider using these products to provide in-depth information on the web application that is executing during the load test. Unlike Java profilers, these tools are less intrusive and typically do not significantly alter the application's performance, which allows you to analyze performance issues under load conditions. While these tools focus on production monitoring, they sometimes come in handy for testing high-performance web sites, or if you cannot isolate a performance problem with your existing tool set. Precise Indepth for J2EEPrecise Indepth for J2EE collects detailed application response time data, as well as JVM and system performance data. Though sold as a production monitoring product, Precise provides an HTML interface displaying HTTP or EJB entry points sorted by response time, with drill-down capabilities. These features also make it easy to see performance problems during load testing. Precise also provides Indepth products for other web site components , such as databases, as well as a monitoring framework. Sitraka PerformaSurePerformaSure targets the performance testing environment specifically by using a combination of lightweight instrumentation to provide high-level performance data across web server, application server, and database. The company also provides more performance intrusive drill-down capabilities. Wily Technologies IntroscopeIntroscope provides monitoring for a wide range of Java applications. Introscope specifically monitors EJB and servlet performance, JVM memory, JDBC connections, CPU utilization, and network socket traffic. Introscope is customizable to add other monitoring points. Introscope provides a set of tailorable dashboards to monitor key components of your choice. Java Application Performance Monitoring Summary
Database Performance AnalysisThe monitoring tools discussed so far focus on production monitoring for Java web applications or Java applications in general. However, specialized monitors also exist for monitoring databases. Like their Java monitoring cousins, these tools focus on production database monitoring, but they sometimes prove valuable during testing as well. If your web application includes a significant database access component, these tools may aid database optimization. Database Performance Monitoring SummaryAdditional products supporting IBM's DB2 database are listed in the Global Solutions Directory at: <http://www8.software.ibm.com/solutions/isv/igssg.nsf/searchgui2>.
Network Protocol AnalyzersNetwork protocol analyzers range in price from freeware to more than $100,000. The table below contains a list of some common network analyzers. [3]
Network Protocol Analyzer Summary
Product CapabilitiesIn addition to the specialized monitoring products, don't forget the excellent , low impact capabilities packaged with the operating systems and middleware. Frequently, these are the only monitoring products you need during your tests. Chapter 12 contains descriptions and examples using some of these tools. Product Capabilities Summary
Production Monitoring SolutionsOnce your site is in production, you'll need to monitor the performance for problem identification and ongoing capacity planning. For completeness, we have included below a list of production monitoring products providing support for IBM's WebSphere Application Server and other leading application servers. [4]
Production Monitoring Summary
|