Defining Application Performance with Metrics


Let's start with a provocative question: What do we actually mean by performance ? There is no single answer to this question because what we think of as good performance vs. bad performance is actually the synergistic effect of a number of "performance factors." These factors can be quantified as performance metrics . This synergistic effect translates into responsiveness. A high-performance Web application will come up quickly in the user 's browser and will respond quickly to their keystrokes and form submissions. A low-performance Web application may crack under the pressure of a few simultaneous requests , creating an unresponsive and generally poor user experience.

Some of the more important performance metrics are the following:

  • Throughput: Throughput is the number of requests that a Web application can serve in a specified time. Throughput is typically measured in requests per second and is a key indicator of application performance. The throughput rate is controlled by at least three factors: the available server resources, the current server load, and the page execution time. The server load is the number of page requests being processed by the server. The page execution time is the length of time it takes for the application to process a request. In short, the throughput metric is influenced by the currently available server resources and the resources that are required to process additional page requests.

  • Response time: This is the length of time between the client posting a request and the client receiving the first byte of information back from the server.

  • Request bytes out total: This is the total size in bytes of the response that is returned to the client, excluding the standard response HTTP headers.

Using Performance Monitor

The Performance Monitor utility allows you to monitor many of these metrics using specialized counters. The previous metric list highlights ones that are easily perceived by users as they work with the application. But an equal number of metrics can cause the perception of lowered performance. You need to monitor these counters to have a complete picture of how well your application is performing.

Performance Monitor provides several monitoring objects, each of which provides a set of counters. To access Performance Monitor, select the Windows 2000 Administrative Tools Performance menu. To monitor a particular counter, you need to select the appropriate Performance object and then select the counters from a multiselect list box. For example, ASP.NET provides the monitoring object ASP.NET Apps v1.0.3705.0. This object includes a Requests Bytes Out Total counter, which is the size of the response being sent to a client. Larger responses take longer to deliver and may result in perceived lower performance, especially over slow Internet connections. Another example is that the Processor Performance Monitor object provides the % Processor Time counter, which is the percentage of time that the processor is working on non-idle threads. If the application resides on a server that is being pegged by another intensive process, then your application users will experience a performance drop that is very real yet is not being caused by the application. Of course, you would probably design your system to avoid pegging your Web servers with non-application- intensive processes.

Figure 1-2 shows the Performance Monitor selection screen. Here, we are selecting the Requests/Sec counter from the ASP.NET Performance object.

click to expand
Figure 1-2: Performance Monitor selection screen for counters

Once you have added a few counters and closed the selection window, you return to the graphical view of the Performance Monitor. Figure 1-3 shows one possible view.

click to expand
Figure 1-3: Performance Monitor graphs

We discuss Performance Monitor in more detail in Chapter 7, "Stress Testing and Monitoring ASP.NET Applications," and we cover each of the performance counters available for monitoring the overall performance of an ASP.NET application.

Setting Performance Benchmarks

We have established that performance refers to several factors that combine to provide the user with a level of responsiveness from the Web application. If you have done your job right as a developer, and as a system architect, then that level of responsiveness will fall within an acceptable range for the user. If you have been especially diligent, then the responsiveness will exceed the users' expectations, and they will proceed to tell all of their friends , family, and pets what a great thing they have going.

Good performance is as much a subjective feeling as it is a quantifiable fact; however, it is the metrics with which this book is concerned . We have presented a number of quantifiable performance metrics you can use to describe how responsive your application is. It is always a good idea to publish unambiguous performance standards in terms of one or more of these metrics. This gives you a benchmark against which you can compare the Web application in the future.

This is one example of a statement on benchmark numbers :

  • The Web application runs on a server farm of three single-processor Pentium 700MHz Web servers with 512MB of RAM each. The operating system for each machine is Windows 2000 Advanced Server SP2. In addition, the Web application interfaces with a clustered SQL Server 2000 database solution. The Web application supports up to 45 requests per second under a user load of 50 “75 concurrent users.




Performance Tuning and Optimizing ASP. NET Applications
Performance Tuning and Optimizing ASP.NET Applications
ISBN: 1590590724
EAN: 2147483647
Year: 2005
Pages: 91

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net