Using Transaction Cost Analysis

Transaction cost analysis (TCA) is a method of measuring site capacity. TCA can measure the performance cost of a transaction, how much traffic your Web site can handle, and the cost of performing various types of transactions on your site. You use TCA to measure the capacity of your site and then use the results to increase the capacity of each system component. You can also compare server transactions with one another to determine which ones are putting the greatest demands on your system.

The term transaction in TCA refers to work done by a server or servers (Web servers, middle–tier servers, and SQL Servers) to fulfill a user request. For example, a user request for a product description page stored in a database is a transaction, as is a request to add an item to a shopping basket. This term does not refer to e-commerce transactions in which money is exchanged.

Analyzing Traffic

Creating a Usage Profile

Measuring Site Capacity

Increasing Web Site Capacity

Increasing Middle-Tier Capacity

Increasing Database Capacity

Analyzing Traffic

After you have analyzed your current system and documented your hardware and software, you must determine how many users typically use the site concurrently. This data usually comes from:

  • Market analysis. Analysis of a new site. You may have commissioned a market analysis report to predict how much traffic your site can expect to receive at the time it is deployed and afterward. Use this report as the baseline configuration for your TCA.

  • Site usage analysis. Analysis of an existing site. Analyze your Web server log files to see how many hits your site receives at any given time, as well as usage trends that might indicate whether parts of the site have become more or less popular over time. When calculating how many concurrent users your site currently supports, remember to base your calculations on peak usage, rather than on typical usage.

Creating a Usage Profile

After you know how many users are using your site, you must then determine how they use it so that you can estimate how much demand a typical user places on the system. You should create a usage profile so that you will have a baseline to start from.

You need to analyze the usage log files of your site to create a usage profile. If you have logs gathered over a long period of time (at least a week) use them to get accurate averages. First, identify the operations that a user can do (browse, search, and so on). Next, gather the following data:

  • Number of users to the site

  • Number of hits each page receives (which pages have been visited)

  • Time spent on each page

  • Session length

  • Peak periods of activity

You can use the number of visits to each page to profile typical user operations for your site. The following table shows a usage profile with typical shopper operations for an e-commerce retailer.

Shopper operation Operations per session Operations per second (transaction frequency) Percentage of total
Add Item 0.24 0.00033 2.00
Add Item + Checkout 0.02 0.00003 0.17
Add Item + Delete 0.04 0.00006 0.33
Basket 0.75 0.00104 6.25
Default (home page) 1.00 0.00139 8.33
Listing 2.50 0.00347 20.83
Lookup 0.75 0.00104 6.25
New 0.25 0.00035 2.08
Product 4.20 0.000583 35.00
Search 1.25 0.00174 10.42
Welcome 1.00 0.00139 8.33

Measuring Site Capacity

The following table lists three tiers of servers that you need to consider when measuring site capacity.

Tier Type of server
Top tier Web servers
Middle tier Business or other application servers, content servers
Bottom tier Database servers

Increasing Web Site Capacity

After measuring the capacity of your system, you may discover that your current system cannot handle the amount of traffic that you are currently experiencing on your Web site. Or, you may be concerned about an upcoming surge in traffic for a new marketing initiative or a seasonal surge, such as Back-to-School or Christmas.

To prevent a lapse in performance, you need to test the expected traffic level on your Web servers to accurately determine where to scale servers to meet the anticipated load. (Performing calculations to determine how many servers to add may work, as long as capacity problems are isolated to one tier.) You can use System Monitor to monitor the counter values for different server objects. You can use the specific Commerce Server performance counters to view the server objects important to your business. For more information about System Monitor, see Windows 2000 Server Help.

To increase capacity, you should determine which resources are depleted. Doing an accurate TCA will also help increase capacity. You can scale the Web servers vertically by increasing the memory, CPU, or network capacity. Another way to increase the capacity of the Web servers is to add more servers to the load-balanced cluster. However, it is critical to have a strong understanding of the capacity of the whole Web farm before making a decision to scale a single component.

See Also

Using Transaction Cost Analysis

Commerce Server Performance Counters

Increasing Middle-Tier Capacity

You can use middle-tier servers for a variety of purposes, such as running applications or storing content. To evaluate performance of your middle tier you should monitor the following performance counters:

  • Memory

  • System

  • Physical disk

If the values for these counters are inadequate, then you should scale this tier. For example, when monitoring the Bytes received per second counter, you should compare this counter to the total bandwidth of your network adapter card to determine whether your network connection is creating a bottleneck. It is recommended to use 50 percent or less of existing capacity to increase room for spikes in visitor traffic. If this number is very close to the capacity of the connection, and processor and memory use are moderate, then the connection might be the problem.

Network Load Balancing (NLB) brings together several computers running server programs using the TCP/IP networking protocol. You can use NLB with a group of Terminal servers to scale the performance of a single Terminal server by distributing its client requests across multiple servers. However, there are limitations when using load balancing with Terminal servers. This is because individual users can connect to different Terminal servers within a group, or user sessions might become broken when redistributed to another Terminal server. You must ensure that user information and preferences remain accessible to users in order to use Terminal Services with load balancing.

You may also want to incorporate documentation that discusses performance issues specific to the technologies you are using on this tier to find ways to increase middle-tier capacity. For example, Windows 2000 Server Help provides information about using Network Load Balancing (NLB) to permit access to additional servers, which could increase capacity.

For more information about NLB, see "Network Load Balancing and Terminal Services" and "Component Services (COM+)" in Windows 2000 Server Help.

Increasing Database Capacity

In order to increase your database capacity, you must first monitor the following performance counters:

  • Memory

  • System

  • Physical disk

  • SQL Server

After monitoring these counters, you will have a better idea if you need to add memory, physical disk space, or servers. You can increase database capacity by adding a new server. It is easier to add a new server than to move an application that is sharing a database server to a new server. However, increasing capacity is not always a simple matter of adding another server. Review the documentation for your database application for guidelines on scaling the database.


All rights reserved.