Claims
- 1. A method for playing back live workload data in a N-tiered computing system consisting of one or more distinct computer systems, a group of one or more application programs each executing in one of the tiers of the N-tiered computing system, comprising:
retrieving live workload data identifying a set of recorded requests and their arguments, each request of the set having been received during an earlier recording period in a particular order by a specified application program among the group of application programs; and presenting each request identified by the retrieved live workload data to the specified application with its arguments in order to play back the requests identified by the retrieved live workload data, such that the played-back requests are presented in the same order as the recorded requests were received during the recording period, and with arguments corresponding to the arguments with which the recorded requests were received during the recording period, in order to preserve the semantic correctness of the application and preserve the performance accuracy of the N-tiered system in which the identified requests were received.
- 2. The method of claim 1 wherein the identified requests are presented with the same argument values with which the recorded requests were received during the recording period.
- 3. The method of claim 1 wherein at least one of the arguments presented with one of the identified requests is presented with a parameterized value.
- 4. The method of claim 1 wherein at least one application program in the group of application programs is a Java language application, and wherein the identified requests are presented to the Java language application via internal playback.
- 5. The method of claim 1, further comprising:
retrieving characteristics of the of the N-tiered computing system at the that were captured at the beginning of the recording period; and before presenting any of the identified requests, modifying the current state of the N-tiered computing system to match the retrieved characteristics of the state of the N-tiered computing system that were captured at the beginning of the recording period.
- 6. The method of claim 1 wherein a database is accessible to one or more of the application programs in the group of application programs, the method further comprising:
retrieving characteristics of the state of the database that were captured at the beginning of the recording period; and before presenting any of the identified requests, modifying the current state of the database to match the retrieved characteristics of the state of the database that were captured at the beginning of the recording period.
- 7. The method of claim 1, further comprising:
retrieving characteristics of the state of the N-tiered computing system that were captured during the recording period; and during playback, before presenting a selected one of the identified requests, modifying the current state of the N-tiered computing system to match the retrieved characteristics of the state of the N-tiered computing system that were captured during the recording period.
- 8. The method of claim 1 wherein a selected one of the application programs in the group of application programs has a dynamic state that changed during the recording period, the method further comprising:
retrieving characteristics of the dynamic state of the selected application program that were captured at a time during the recording period after the dynamic state changed; and during playback, before presenting a selected one of the identified requests, modifying the current state of the selected application program to match the retrieved characteristics of the dynamic state of the selected application program that were captured at a time during the recording period after the dynamic state changed.
- 9. The method of claim 1 wherein at least one application program in the group of application programs is executing in an HTTP layer, and wherein the identified requests are presented to the application programs executing in the HTTP layer via external playback.
- 10. A computer-readable medium whose contents cause a computing system to play back live workload data in a N-tiered computing system consisting of one or more distinct computer systems, a group of one or more application programs each executing in one of the tiers of the N-tiered computing system, by:
retrieving live workload data identifying a set of recorded requests and their arguments, each request of the set having been received during an earlier recording period in a particular order by a specified application program among the group of application programs; and presenting each request identified by the retrieved live workload data to the specified application with its arguments in order to play back the requests identified by the retrieved live workload data, such that the played-back requests are presented in the same order as the recorded requests were received during the recording period, and with arguments corresponding to the arguments with which the recorded requests were received during the recording period, in order to preserve the semantic correctness of the application and preserve the performance accuracy of the N-tiered system in which the identified requests were received.
- 11. An N-tiered computing system for playing back live workload data, the N-tiered computing system consisting of one or more distinct computer systems, a group of one or more application programs each executing in one of the tiers of the N-tiered computing system, comprising:
a storage device from which live workload data identifying a set of recorded requests and their arguments is retrieved, each request of the set having been received during an earlier recording period in a particular order by a specified application program among the group of application programs; and a request presentation subsystem that presents each request identified by the live workload data retrieved from the storage device to the specified application with its arguments in order to play back the requests identified by the retrieved live workload data, such that the played-back requests are presented in the same order as the recorded requests were received during the recording period, and with arguments corresponding to the arguments with which the recorded requests were received during the recording period, in order to preserve the semantic correctness of the application and preserve the performance accuracy of the N-tiered system in which the identified requests were received.
- 12. A method for playing back live workload data in a N-tiered computing system consisting of one or more distinct computer systems, a group of one or more application programs each executing in one of the tiers of the N-tiered computing system, comprising:
retrieving live workload data identifying a set of recorded requests and their arguments, each request of the set having been received during an earlier recording period in a particular order by a specified application program among the group of application programs; and presenting each request identified by the retrieved live workload data to the specified application with its arguments in order to play back the requests identified by the retrieved live workload data, such that the identified requests are presented in a manner that varies a run-time characteristic of the request presentation that was present in the receipt of the requests during the recording period, and such that the played-back requests are presented in the same order as the recorded requests were received during the recording period, and with arguments corresponding to the arguments with which the recorded requests were received during the recording period, in order to preserve the semantic correctness of the application.
- 13. The method of claim 12 wherein the run-time characteristic that is varied in the presentation of the requests is the timing of presenting the requests.
- 14. The method of claim 12 wherein the run-time characteristic that is varied in the presentation of the requests is the concurrency of the presented requests.
- 15. A computer-readable medium whose contents cause a computing system to play back live workload data in a N-tiered computing system consisting of one or more distinct computer systems, a group of one or more application programs each executing in one of the tiers of the N-tiered computing system, by:
retrieving live workload data identifying a set of recorded requests and their arguments, each request of the set having been received during an earlier recording period in a particular order by a specified application program among the group of application programs; and presenting each request identified by the retrieved live workload data to the specified application with its arguments in order to play back the requests identified by the retrieved live workload data, such that the identified requests are presented in a manner that varies a run-time characteristic of the request presentation that was present in the receipt of the requests during the recording period, and such that the played-back requests are presented in the same order as the recorded requests were received during the recording period, and with arguments corresponding to the arguments with which the recorded requests were received during the recording period, in order to preserve the semantic correctness of the application.
- 16. An N-tiered computing system for playing back live workload data, the N-tiered computing system consisting of one or more distinct computer systems, a group of one or more application programs each executing in one of the tiers of the N-tiered computing system, comprising:
a storage device from which live workload data identifying a set of recorded requests and their arguments is retrieved, each request of the set having been received during an earlier recording period in a particular order by a specified application program among the group of application programs; and a request presentation subsystem that presents each request identified by the live workload data retrieved from the storage device to the specified application with its arguments in order to play back the requests identified by the retrieved live workload data, such that the identified requests are presented in a manner that varies a run-time characteristic of the request presentation that was present in the receipt of the requests during the recording period, and such that the played-back requests are presented in the same order as the recorded requests were received during the recording period, and with arguments corresponding to the arguments with which the recorded requests were received during the recording period, in order to preserve the semantic correctness of the application.
- 17. A method in a computing system for performing on a subject computer system activities specified by stored information, the subject computer system having performance characteristics including response time, data throughput rate, and processor utilization, the method comprising:
retrieving information specifying activities to perform on the subject computer system; and performing the specified activities on the subject computer system in accordance with the retrieved information, such that that the collecting and storing reduce the subject computer system's data throughput rate by no more than 5% over a sampling period during the time over which the activities specified by stored information are performed on the subject computer system, and such that that the collecting and storing increase the subject computer system's processor utilization by no more than 15% over a sampling period during the time over which the activities specified by stored information are performed on the subject computer system.
- 18. The method in claim 17 wherein the retrieved information is a live workload characterization of the activities.
- 19. The method in claim 17 wherein the retrieved information is a live workload characterization of the activities that was constructed in the subject computer system.
- 20. The method of claim 17 wherein the sampling period is ten minutes.
- 21. The method of claim 17 wherein the sampling period is the entire period of time over which the activities specified by stored information are performed on the subject computer system.
- 22. One or more computer memories collectively containing a queue battery data structure for use in playing back a real workload in an N-tiered system, the queue battery comprising a plurality of request queues, each request queue containing an ordered sequence of requests recorded as part of the real workload,
- 23. A system for recording data describing live requests and using the recorded data to play back the live requests, comprising:
an N-tiered computing system in which requests are received and processed; instrumentation installed on the N-tiered computer system that captures live requests received in the computing system during a recording period; and a storage device that receives from the instrumentation data describing the live requests captured by the instrumentation during the recording period, and that stores the data received from the instrumentation, and that at a later time retrieves the stored data delivers it to the instrumentation, and wherein the instrumentation receives the data delivered from the storage device and uses the received data to present the live requests described in the data received from the storage device to the N-tiered computing system for processing during a replay period.
- 24. The system of claim 23, further comprising a processing subsystem that processes the data describing the live requests stored by the storage device to prepare the requests described by the data for presentation during the replay period.
- 25. The system of claim 23 wherein the live requests captured by the instrumentation and described in the data stored by the storage device includes multiple concurrent requests.
- 26. The system of claim 23 wherein the data describing the live requests stored by the storage device includes arguments received with the live requests.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 60/358,989, entitled “REAL-WORKLOAD CAPTURE AND REPLAY TECHNOLOGY FOR ACCURATE LOAD AND PERFORMANCE TESTING,” filed on Feb. 21, 2002 and U.S. Provisional Application No. 60/417,021, entitled “REAL WORKLOAD PERFORMANCE ANALYSIS,” filed on Oct. 7, 2002 and is related to U.S. Patent Application No. ______, entitled “INSTRUMENTATION AND WORKLOAD RECORDING FOR A SYSTEM FOR PERFORMANCE TESTING OF N-TIERED COMPUTER SYSTEMS USING RECORDING AND PLAYBACK OF WORKLOADS,” filed concurrently herewith (Attorney Docket No. 360058003US) and U.S. Patent Application No. ______, entitled “WORKLOAD POST-PROCESSING AND PARAMETERIZATION FOR A SYSTEM FOR PERFORMANCE TESTING OF N-TIERED COMPUTER SYSTEMS USING RECORDING AND PLAYBACK OF WORKLOADS,” filed concurrently herewith (Attorney Docket No. 360058007US), all four of which applications are incorporated herein by reference in their entirety.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60358989 |
Feb 2002 |
US |
|
60417021 |
Oct 2002 |
US |