In simple terms we can define Response Time of a request or a transaction as the amount of time taken to respond back to a request or a transaction.
In Software performance engineering, Response Time is one of key parameters for measuring the performance of a system. If a system is able to process any given request within the expected target time, the system is said to have good performance. However if the response times for given requests are high the throughput of the system reduces, i.e in a given amount of time the number of transactions completed will be less than expected.
The total response time for a given request may have several components:
Response time =Network time + server time
Network time= latency+ transmission time
Server time= service time + queuing time
The network time is the time spent in sending various messages between the browser and web server to complete a given request
Latency indicates the number of round trip times (RTT) involved in exchange of messages between the client browser and the application. Latency is a function of the nature of protocols used and in case of web pages the design of the web page. Further details on Latency topic will be covered under Network section.
Transmission time is the time needed to transmit all the bytes exchanged between the browser and application, and depends on the bandwidth of the slowest link connecting the browser and server.
The time spent by a request on a given server or component such as CPU, disk is the service time for that component or resource for the given request. The sum of all service times for a given request is the service demand of the request.
The amount of time the request is waiting to be serviced by the resource is called the waiting time. The sum of all waiting times for a given resource for a given request is the queuing time.
We can measure response time at server or client as follows:
Measurement of response times
- Response Time measured at the server - The time taken by server to complete execution of a request, which does not include the network time.
- Response Time measured at the client - The response time measured at client includes the request queue, time taken by server to complete the execution of request, and the network time.
- Average response
- 90th Percentile Response Times
Average response time is calculated as sum of all the response times divided by number of instances for a given sampling period
90th Percentile response time is defined as the value for which 90% of response times are small or within the targets and 10% are higher or above the targets. We can calculate the 90th percentile value for a transaction as follows:
1. Sort all the response time instances
2. Remove top 10% instances
3. Highest value is the 90th Percentile
Example to calculate 90th percentile value:
For a transaction the response time (in seconds) data for 10 instances are as follows:
4, 2, 3, 5, 1, 9, 7, 10, 11, 8
Step1: Sort values from the best to worst
1, 2, 3, 4, 5, 7, 8, 9, 10, 11
Step2: Remove the top 10%, here it is ‗11‘
1, 2, 3, 4, 5, 7, 8, 9, 10
Step3: The highest value left is 90th percentile value, here it is ‗10‘. So the 90th percentile value is 10.
Defining the meaning of response time in software performance