In general terms, throughput is the maximum rate of production or the maximum rate at which something can be processed [Wikipedia]. In real world we define any rate of processing as throughput, for example - Network throughput.
In network communications throughput is defined as the amount of data (bits) transmitted from one system to another per unit time. For networks, throughput can be measured in Kbps, Mbps or Gbps.
In software performance testing the word throughput is loosely used for describing transactions per seconds (TPS) or data sent per unit time (Bytes/Sec)
The unit used to measure throughput of a system depends on the type of request. Example, for storage systems, throughput is measured in IOPs ( I/O operations per second), for a web server, it is measured in HTTPops (HTTP operations per second) and for an application, throughput is measured in TPS (Transactions per second) or TPH (Transactions per hour) and for database servers, it is measured in RPS (Records processed per second).
Example 1 : In context of performance engineering lets assume that we observe a system for 2 minutes. During this time we observe that 10 users successfully perform a transaction and exit the system.
There is also one other interesting relationship between Maximum Throughput of a system and the Average Value of Service Time. It’s denoted by the following equation:
- Transactions Completed - 10
- Time of Observation - 2 Minutes
- Throughput = TPS = 10/120 (seconds) = 0.0833 Transactions Per Second
Xmax= Max Value of Throughput possible
- Xmax <= 1 / Stavg
Stavg = Avg Value of Service Time
The above equation is basically the definition of bottleneck equation. The bottleneck equation basically states that the Maximum Throughput is inversely proportional to the Average (System/Component) Service Time. Using the above equation you can key in the Average Service Time for your bottleneck resource (resource or component within the system that has the highest Service Time) within your system and obtain the maximum possible throughput the system can achieve.
Example 2: Bottleneck Equation Let’s assume some system as shown below. The poorest performing component has a Service Time of 3s i.e. This is the component within the system with the largest Service Time.
Thus Xmax <= 1/3s = 0.33 Transactions/Sec. This particular system can never achieve a throughput more than 0.33 Transactions/Sec as long as the largest Service time within the system is 3s.
The bottleneck equations proves to be very useful while analysing performance test results.
Throughput/Transactions per Second (TPS)
Defining the key performance measurement quantity of throughput