Review Performance Test Results


In order to turn the test objectives into a capacity plan, we map the performance tests results to the objectives. For capacity planning purposes, the most critical performance test results are the following:

  1. User ramp-up (load, throughput, response time)

  2. Scalability results

  3. Server CPU utilization data

  4. Network utilization data

Let's look at some sample performance test results and see how to use them to build a capacity plan.

Single-Server User Ramp-Up

Earlier, when we suggested that you should start with a simple configuration and work your way up to a more complex environment, we mentioned that the information you gleaned from your simple tests would help with capacity planning. Now we've arrived at the point where we use the simple configuration data to help us build a capacity plan for the web site.

We also suggested doing a user ramp-up test on this simple configuration. This test gives us the load, throughput, and response time plateaus for this simple case. For this exercise, use a ramp-up test performed against the final, tuned version of the system to obtain the best possible numbers for your planning.

If you haven't already filled out a Summary Test Results graph (from Appendix D), do this now. On this graph, chart the client ramp-up results for throughput and response time. Using this graph, locate your response time objective, and find the corresponding load and throughput values. Sample performance results are shown in Figure 15.1.

Figure 15.1. Sample user ramp-up performance test results

graphics/15fig01.gif

Using the data shown in Figure 15.1, the response time goal of two seconds (2,000 milliseconds) corresponds to a 2,000 user load with a transaction rate of almost 100 transactions per second. Notice that if instead your response time goal was 500 milliseconds , the system would reach this point with only a 500 user load. Record the load and throughput at your response time objective in Part 2 of the Capacity Planning worksheet, as shown in Table 15.3.

Table 15.3. Capacity Planning Worksheet, Line 4
  Response Time (Line 2 Above) Simulated Load (from Performance Results) Measured Throughput (from Performance Results)
4. 2 sec 2,000 users 100 requests /sec

The results in the table tell us that a simple configuration supports 2,000 concurrent users with acceptable throughput and response time. These numbers tell us at an "atomic" level what the basic configurations inside our web site support. However, we cannot assume that adding ten of these simple systems gives us ten times the capacity of the single system. Instead, we must consult the scalability data from our performance test to determine how the atomic components of our web site scale.

Scalability Data

The most important information to consider here is the fundamental scalability characteristics demonstrated in your tests. These characteristics dictate the scalability assumptions to make for your web site. For example, did your cluster tests demonstrate near linear scalability? Linear scalability (or close to it) allows us to estimate that, indeed, ten times the current resources gives us ten times the capacity. We look to our performance testing to validate this assumption and to show us any factors that might limit our scale. (See Chapter 11 for more details.)

In this step, take your cluster test results and summarize them in the Cluster Scalability section of the Capacity Planning worksheet, using the cluster test results that correspond to the web site response time objective. Table 15.4 provides an example. In this case, the data shows near linear scalability. Two servers handle nearly twice the transactions while maintaining two-second response time, and three servers support almost triple the transactions.

Table 15.4. Capacity Planning Worksheet: Scalability Data, Lines 5 “7
  Number of Application Servers Response Time Simulated Load Measured Throughput
5. 1 2 2,000 100 requests/sec
6. 2 2 4,000 196 requests/sec
7. 3 2 6,000 295 requests/sec

Processor Utilization

Beyond the raw test data, we also look at the data collected from the machines during the test runs as we work through a capacity plan. The CPU utilization plays an important role in capacity planning and helps us extrapolate beyond the data collected during performance testing.

For capacity planning, capture the processor utilization data from the cluster test work performed in your production configuration. For example, if your production configuration separates HTTP servers, application servers, and database servers, as shown earlier in Figure 3.13, then you need the processor utilization for each of these servers. Fill in the processor utilization data in lines 8 “10 of the worksheet. Make sure to use only the data corresponding to the target response time. Table 15.5 contains data we'll use in the next section on estimating performance.

Table 15.5. Capacity Planning Worksheet: Processor Utilization Data, Lines 8 “10
  Number of Application Servers Application Server CPU HTTP Server CPU Load Balancer CPU Database 1 CPU Database 2 CPU Other CPU
8. 1 75% 20% 10% 15% n/a n/a
9. 2 75% 40% 15% 30% n/a n/a
10. 3 75% 60% 20% 45% n/a n/a


Performance Analysis for Java Web Sites
Performance Analysis for Javaв„ў Websites
ISBN: 0201844540
EAN: 2147483647
Year: 2001
Pages: 126

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