Application response time prediction
DCFirst Claim
Patent Images
1. A computer-implemented method of application response time prediction, comprising the steps of:
- measuring performance characteristics of a network-based application implemented in a first network environment;
obtaining network characteristics of a second network environment;
and applying the obtained network characteristics of the second network environment to the measured performance characteristics of the application, to generate a predicted application response time.
11 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A computer-implemented method, system, and program product for application response time prediction provides an estimate of application performance in a second network given performance characteristics of the application in a first network. The invention avoids unnecessary simulation of an entire network, and is able to take into account the effect of network performance characteristics on both simple and non-simple applications, including those having relationships among threads.
84 Citations
54 Claims
-
1. A computer-implemented method of application response time prediction, comprising the steps of:
-
measuring performance characteristics of a network-based application implemented in a first network environment;
obtaining network characteristics of a second network environment;
and applying the obtained network characteristics of the second network environment to the measured performance characteristics of the application, to generate a predicted application response time. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
bottleneck bandwidth;
network configuration;
effect of network protocols;
round trip latency; and
background load on bottleneck.
-
-
4. The computer-implemented method of claim 1, wherein the second network environment contains a bottleneck,
and wherein the step of obtaining network characteristics comprises the substep of obtaining characteristics of the bottleneck of the second network; and wherein the step of applying the obtained network characteristics comprises the substep of applying the obtained bottleneck characteristics to the measured performance characteristics of the application.
-
5. The computer-implemented method of claim 4, wherein the second network environment is a wide area network (WAN), and the bottleneck comprises a WAN link.
-
6. The computer-implemented method of claim 4,
wherein the substep of obtaining characteristics of the bottleneck comprises the substep of obtaining a measurement of bandwidth of the bottleneck of the second network; and wherein the substep of applying the obtained bottleneck characteristics comprises the substep of applying the obtained bandwidth measurement to the measured performance characteristics of the application.
-
7. The computer-implemented method of claim 6, wherein the sub-step of obtaining a measurement of bandwidth comprises determining an equivalent bandwidth using the equation:
-
where; r is the bandwidth of the WAN link; and
N is an average queue length.
-
-
8. The computer-implemented method of claim 7, wherein the sub-step of obtaining a measurement of bandwidth further comprises determining the average queue length using the equation:
-
where ρ
is a utilization factor.
-
-
9. The computer-implemented method of claim 1, wherein the network-based application contains no parallel threads.
-
10. The computer-implemented method of claim 1, wherein the network-based application contains at least two parallel threads.
-
11. The computer-implemented method of claim 1, wherein:
-
the step of measuring performance characteristics comprises measuring a processing time for the application;
the step of obtaining network characteristics comprises obtaining a transmission delay for the second network environment; and
the step of applying the obtained network characteristics comprises adding the transmission delay to the processing time.
-
-
12. The computer-implemented method of claim 11, wherein the application comprises a plurality of turns, and wherein the step of applying the obtained network characteristics comprises, for each turn, adding the transmission delay to the processing time.
-
13. The computer-implemented method of claim 1, wherein:
-
the step of measuring performance characteristics comprises measuring a client processing time for the application and a server processing time for the application;
the step of obtaining network characteristics comprises obtaining a transmission delay and a propagation delay for the second network environment; and
the step of applying the obtained network characteristics comprises adding the transmission delay, the propagation delay, the client processing time, and, the server processing time.
-
-
14. The computer-implemented method of claim 1, wherein the second network environment employs TCP flow control.
-
15. The computer-implemented method of claim 14, wherein the second network environment employs a slow start flow control method, and wherein the step of applying the obtained network characteristics comprises:
-
determining an additional number of turns resulting from the slow start flow control method; and
applying the additional number of turns to the measured performance characteristics of the application.
-
-
16. The computer-implemented method of claim 14, wherein the second network environment employs a sliding window flow control method, and wherein the step of applying the obtained network characteristics comprises:
-
determining an equivalent bandwidth resulting from the sliding window flow control method; and
applying the determined equivalent bandwidth to the measured performance characteristics of the application.
-
-
17. The computer-implemented method of claim 1, wherein the application comprises a plurality of threads, and wherein the step of applying the obtained network characteristics comprises:
-
deconstructing the application into the plurality of threads;
for each thread, generating a predicted the response time; and
generating a predicted application response time by combining the predicted thread response times.
-
-
18. The computer-implemented method of claim 17, wherein at least two threads have a relationship with each other, and wherein the step of generating a predicted application response time comprises:
-
combining the predicted response times for the threads; and
adjusting the combined response time responsive to predicted node processing time overlap in the second network environment.
-
-
19. The computer-implemented method of claim 18, wherein the step of adjusting the combined response time comprises applying a nonlinear equation to predict thread overlap in the second network environment.
-
20. The computer-implemented method of claim 18, wherein one of the threads has a parent-child relationship with respect to another of the threads.
-
21. The computer-implemented method of claim 18, wherein the start of one of the threads depends upon the completion of another of the threads.
-
22. The computer-implemented method of claim 1, wherein the network-based application contains at least two parallel threads, and wherein:
-
the step of measuring performance characteristics comprises measuring an amount of thread overlap for the application in the first network environment; and
the step of applying the obtained network characteristics comprises determining an estimated change in thread overlap for the application in the second network environment.
-
-
23. The computer-implemented method of claim 22, wherein the step of applying the obtained network characteristics comprises applying a non-linear equation to predict thread overlap in the second network environment.
-
24. A computer program product comprising a computer-usable medium having computer-readable code embodied therein for predicting application response time, comprising:
-
computer-readable program code devices configured to cause a computer to measure performance characteristics of a network-based application implemented in a first network environment;
computer-readable program code devices configured to cause a computer to obtain network characteristics of a second network environment; and
computer-readable program code devices configured to cause a computer to apply the obtained network characteristics of the second network environment to the measured performance characteristics of the application, to generate a predicted application response time. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
bottleneck bandwidth;
network configuration;
effect of network protocols;
round trip latency; and
background load on bottleneck.
-
-
27. The computer program product of claim 24, wherein the second network environment contains a bottleneck,
and wherein the computer-readable program code devices configured to cause a computer to obtain network characteristics comprise computer-readable program code devices configured to cause a computer to obtain characteristics of the bottleneck of the second network; and wherein the computer-readable program code devices configured to cause a computer to apply the obtained network characteristics comprises computer-readable program code devices configured to cause a computer to apply the obtained bottleneck characteristics to the measured performance characteristics of the application.
-
28. The computer program product of claim 27, wherein the second network environment is a wide area network (WAN), and the bottleneck comprises a WAN link.
-
29. The computer program product of claim 27,
wherein the computer-readable program code devices configured to cause a computer to obtain characteristics of the bottleneck comprises computer-readable program code devices configured to cause a computer to obtain a measurement of bandwidth of the bottleneck of the second network; and wherein the computer-readable program code devices configured to cause a computer to apply the obtained bottleneck characteristics comprises computer-readable program code devices configured to cause a computer to apply the obtained bandwidth measurement to the measured performance characteristics of the application.
-
30. The computer program product of claim 29, wherein the computer-readable program code devices configured to cause a computer to obtain a measurement of bandwidth comprise computer-readable program code devices configured to cause a computer to determine an equivalent bandwidth using the equation:
-
where; r is the bandwidth of the WAN link; and
N is an average queue length.
-
-
31. The computer program product of claim 30, wherein the computer-readable program code devices configured to cause a computer to obtain a measurement of bandwidth further comprise computer-readable program code devices configured to cause a computer to determine the average queue length using the equation:
-
where ρ
is a utilization factor.
-
-
32. The computer program product of claim 24, wherein the network-based application contains no parallel threads.
-
33. The computer program product of claim 24, wherein the network-based application contains at least two parallel threads.
-
34. The computer program product of claim 24, wherein:
-
the computer-readable program code devices configured to cause a computer to measure performance characteristics comprise computer-readable program code devices configured to cause a computer to measure a processing time for the application;
the computer-readable program code devices configured to cause a computer to obtain network characteristics comprise computer-readable program code devices configured to cause a computer to obtain a transmission delay for the second net-work environment; and
the computer-readable program code devices configured to cause a computer to apply the obtained network characteristics comprise computer-readable program code devices configured to cause a computer to add the transmission delay to the processing time.
-
-
35. The computer program product of claim 34, wherein the application comprises a plurality of turns, and wherein the computer-readable program code devices configured to cause a computer to apply the obtained network characteristics comprise computer-readable program code devices configured to cause a computer to, for each turn, add the transmission delay to the processing time.
-
36. The computer program product of claim 24, wherein:
-
the computer-readable program code devices configured to cause a computer to measure performance characteristics comprise computer-readable program code devices configured to cause a computer to measure a client processing time for the application and a server processing time for the application;
the computer-readable program code devices configured to cause a computer to obtain network characteristics comprise computer-readable program code devices configured to cause a computer to obtain a transmission delay and a propagation delay for the second network environment; and
the computer-readable program code devices configured to cause a computer to apply the obtained network characteristics comprise computer-readable program code devices configured to cause a computer to add the transmission delay, the propagation delay, the client processing time, and the server processing time.
-
-
37. The computer program product of claim 24, wherein the second network environment employs TCP flow control.
-
38. The computer program product of claim 37, wherein the second network environment employs a slow start flow control method, and wherein the computer-readable program code devices configured to cause a computer to apply the obtained network characteristics comprise:
-
computer-readable program code devices configured to cause a computer to determine an additional number of turns resulting from the slow start flow control method; and
computer-readable program code devices configured to cause a computer to apply the additional number of turns to the measured performance characteristics of the application.
-
-
39. The computer program product of claim 37, wherein the second network environment employs a sliding window flow control method, and wherein the computer-readable program code devices configured to cause a computer to apply the obtained network characteristics comprise:
-
computer-readable program code devices configured to cause a computer to determine an equivalent bandwidth resulting from the sliding window flow control method; and
computer-readable program code devices configured to cause a computer to apply the determined equivalent bandwidth to the measured performance characteristics of the application.
-
-
40. The computer program product of claim 24, wherein the application comprises a plurality of threads, and wherein the computer-readable program code devices configured to cause a computer to apply the obtained network characteristics comprise:
-
computer-readable program code devices configured to cause a computer to deconstruct the application into the plurality of threads;
computer-readable program code devices configured to cause a computer to, for each thread, generate a predicted the response time; and
computer-readable program code devices configured to cause a computer to generate a predicted application response time by combining the predicted thread response times.
-
-
41. The computer program product of claim 40, wherein at least two threads have a relationship with each other, and wherein the computer-readable program code devices configured to cause a computer to generate a predicted application response time comprise:
-
computer-readable program code devices configured to cause a computer to combine the predicted response times for the threads; and
computer-readable program code devices configured to cause a computer to adjust the combined response time responsive to predicted node processing time overlap in the second network environment.
-
-
42. The computer program product of claim 41, wherein the computer-readable program code devices configured to cause a computer to adjust the combined response time comprise computer-readable program code devices configured to cause a computer to apply a nonlinear equation to predict thread overlap in the second network environment.
-
43. The computer program product of claim 41, wherein one of the threads has a parent-child relationship with respect to another of the threads.
-
44. The computer program product of claim 41, wherein the start of one of the threads depends upon the completion of another of the threads.
-
45. The computer program product of claim 24, wherein the network-based application contains at least two parallel threads, and wherein:
-
the computer-readable program code devices configured to cause a computer to measure performance characteristics comprise computer-readable program code devices configured to cause a computer to measure an amount of thread overlap for the application in the first network environment; and
the computer-readable program code devices configured to cause a computer to apply the obtained network characteristics comprise computer-readable program code devices configured to cause a computer to determine an estimated change in thread overlap for the application in the second network environment.
-
-
46. The computer program product of claim 45, wherein the computer-readable program code devices configured to cause a computer to apply the obtained network characteristics comprise computer-readable program code devices configured to cause a computer to apply a nonlinear equation to predict thread overlap in the second network environment.
-
47. A system for application response time prediction, comprising:
-
a monitoring module, for measuring performance characteristics of a network-based application implemented in a first network environment;
a tools module for obtaining network characteristics of a second network environment; and
a response time predictor, coupled to the monitoring module and to the tools module, for applying the obtained network characteristics of the second network environment to the measured performance characteristics of the application, to generate a predicted application response time. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54)
and wherein the tools module obtains characteristics of the bottleneck of the second network; and wherein the response time predictor applies the obtained bottleneck characteristics to the measured performance characteristics of the application.
-
-
49. The system of claim 47, wherein the network-based application contains at least two parallel threads.
-
50. The system of claim 47, wherein:
-
the monitoring module comprises a processing time monitor, for measuring a client processing time for the application and a server processing time for the application;
the tools module comprises a delay monitor, for obtaining a transmission delay and a propagation delay for the second network environment; and
the response time predictor comprises a delay adder, for adding the transmission delay, the propagation delay, the client processing time, and the server processing time.
-
-
51. The system of claim 47, wherein:
-
the second network environment employs a slow start flow control method; and
the response time predictor comprises a turn estimator, for determining an additional number of turns resulting from the slow start flow control method;
and wherein the response time predictor applies the additional number of turns to the measured performance characteristics of the application.
-
-
52. The system of claim 47, wherein:
-
the second network environment employs a sliding window flow control method; and
the response time predictor comprises a an equivalent bandwidth estimator, for determining an equivalent bandwidth resulting from the sliding window flow control method;
and wherein the response time predictor applies the determined equivalent bandwidth to the measured performance characteristics of the application.
-
-
53. The system of claim 47, wherein the application comprises a plurality of threads, and wherein the response time predictor comprises:
-
an application deconstructor, for deconstructing the application into the plurality of threads;
a thread response time predictor, coupled to the application deconstructor, for generating a predicted the response time for each thread; and
an application response time predictor, coupled to the thread response time predictor, for generating a predicted application response time by combining the predicted thread response times.
-
-
54. The system of claim 53, wherein at least two threads have a relationship with each other, and wherein the application response time predictor comprises:
-
a response time combiner, for combining the predicted response times for the threads; and
a response time adjuster, coupled to the response time combiner, for adjusting the combined response time responsive to predicted node processing time overlap in the second network environment.
-
Specification