Even the quickest of tours through the Microsoft Developer Network portal shows that the vendor continues to promote traditional testing methodologies to measure .Net application performance under the most ideal conditions. Case in point: the use of predictive analysis to measure the number of transactions and estimated load conditions to approximate performance of .Net production systems.
But in the real world, it is often difficult for system architects to manage the performance of .Net applications that interact with many external resources, including Web services, databases and composite applications. For instance, companies that are using business process management orchestration engines that interact with .Net applications sometimes run into serious performance limits that are difficult to predict. Often, one developer group ends up blaming the other because runtime data is hard to analyze.
Even if only .Net code is used on Web and application tiers, Microsoft's testing measures are only useful when predicting peak loads under normal testing scenarios.
Ultimately, a true measure of performance is based on real user throughput, a condition that is typically beyond the control of the IT staff. To gain a true understanding of application performance by measuring real user experiences and production conditions, CRN Test Center engineers recommend using Symphoniq's TrueView, which is a .Net and J2EE diagnostic tool for managing Web applications.
On the server side, TrueView uses agents to track and collect .Net application performance data. Every server tier receives an agent with the exception of database servers. Performance bottlenecks on the database tier are picked up by the agents running on application tiers, since an application tier is firmly connected to the database tier by code.
The TrueView suite also collects data throughput from external components such as Web services by analyzing .Net stack calls. This technique also can be used when tracing applications that connect to enterprise middleware such as Tibco's BusinessWorks and SAP's NetWeaver.
TrueView also can identify components calling non-managed APIs. This boundary can be extended if the external applications run on J2EE. As long as TrueView's agents have access to .Net and J2EE stacks, component instances can be traced through their entire hierarchy. Both TrueView's J2EE and .Net agents have the same monitoring capabilities.
More on Symphoniq TrueViewTo manage the agents, Symphoniq provides a stand-alone Management Server that collects and processes realtime data from each .Net tier. The Management Server usually is installed on a separate computer from the agents to minimize data contention and improve application performance. On small applications, the Management Server can be installed on Windows desktops.
Unlike tracing tools that bind to application code, the TrueView agents do not affect applications directly. Instead, the agents collect information from .Net runtime binaries. On systems with high performance demands, the agents use about 2 percent to 4 percent of a .Net's runtime throughput. The agents' performance is negligible when deploying the application with load balancing and other clustering techniques.
TrueView's Management Server uses a simple Web-based dashboard console to monitor all .Net activities on a network. The dashboard simplifies the monitoring process by dividing application artifacts into business groups. Administrators can set up business groups by the types of products and applications that require monitoring. When creating a group, administrators have to use regular expressions to collect artifacts. Each collection of application artifacts is represented by a set of URL patterns that link to a part of a Web site. For instance, the URLs can point to individual products on a Web store, Web pages and even large sections of a Web application.
The agents also track realtime performance data. Through the management console, administrators can view maximum Web page responses, page errors per second and the total number of errors. The console also provides graphs for non-technical managers.
Once errors have been detected, developers can take over by jumping into a historical mode in the management console to view more detailed execution intervals. In addition to page statistics, TrueView also can correlate server statistics such as memory utilization and CPU performance with application performance degradation.
By digging deeper into application diagnostics, developers can also view performance metrics across each tier for every application instance invoked by end users. Developers can use these measures to quickly find where a delay or error occurred.
Because TrueView produces data from each tier, developers can differentiate between Web page latency, a Web server response and a slow browser page rendering. In addition, TrueView can trace .Net call trees and identify classes and methods that are causing delays or errors. The tool also can trace parameters that are passed between components and database instances.
TrueView uses Microsoft's SQL Server Reporting Services to build reports. Since the data is collected into a SQL Server database, the reporting engine opens the door for solution providers that want to build custom reports.
As a test suite, Symphoniq's TrueView is ideal because it does not affect source code. During performance testing, the tool can track test transactions from beta users and generated traffic loads, so TrueView is also ideal when testing systems.