Patent Number: 
Section: claims

1. A method of generating a benchmark profile used to predict the performance of a software application including a plurality of subroutines, the method comprising:identifying a plurality of performance characteristics associated with the software application, wherein each performance characteristic specifies a processing activity performed by the software application, and wherein at least one performance characteristic is associated with more than one of the plurality of subroutines;for each of the plurality of performance characteristics, determining a ratio specifying a proportion of the processing activity performed by the software application for the performance characteristic relative to the processing activity of the software application as a whole;for each of the plurality of performance characteristics, identifying at least one synthetic benchmark configured to evaluate the performance of a computer system relative to the performance characteristic;generating the benchmark profile, wherein the benchmark profile stores the ratio determined for each of the plurality of performance characteristics and an indication of each identified synthetic benchmark;executing the synthetic benchmarks, each of the synthetic benchmarks identified in the benchmark profile, on a distributed computer system for a period of time corresponding to the ratio determined for each respective performance characteristic of the plurality of performance characteristics; anddetermining, from the synthetic benchmarks, a composite score based on the performance of the executed synthetic benchmarks, wherein the composite score predicts the performance of the software application on the distributed computer system and is stored in the benchmark profile. 2. The method of claim 1, wherein the ration determined for each of the plurality of performance characteristics is determined for each of the plurality of subroutines. 3. The method of claim 1, wherein the software application is configured to execute on a distributed computer system, and wherein each of the plurality of subroutines is executed on at least one node of the distributed computer system. 4. The method of claim 1, wherein identifying the plurality of performance characteristics associated with the software application comprises evaluating source code of the software application. 5. The method of claim 1, wherein identifying the plurality of performance characteristics associated with the software application comprises dynamically monitoring the software application running on a disturbed computer system. 6. The method of claim 1, wherein a user identifies at least one of the plurality of performance characteristics associated with the software application. 7. The method of claim 1, wherein each of the plurality of performance characteristics characterizes at least on of processor utilization, memory utilization, input/output efficiency, storage device access latency, memory access latency, storage device access latency, and network latency of distributed computer system. 8. A non-transitory computer-readable storage medium containing a program configured to generate a benchmark profile used to predict the performance of a software application including a plurality of subroutines which, when executed on a processor, performs an operation comprising,identifying a plurality of performance characteristics associated with the software application, wherein each performance characteristic specifies a processing activity performed by the software application, and wherein at least one performance characteristic is associated with more than one of the plurality of subroutines;for each of the plurality of performance characteristics, determining a ratio specifying a proportion of the processing activity performed by the software application for the performance characteristic relative to the processing activity of the software application as a whole;for each of the plurality of performance characteristics, identifying at least one synthetic benchmark configured to evaluate the performance of a computer system relative to the performance characteristic;generating the benchmark profile, wherein the benchmark profile stores the ratio determined for each of the plurality of performance characteristics and an indication of each identified synthetic benchmark;executing the synthetic benchmarks, each of the synthetic benchmarks identified in the benchmark profile, on a distributed computer system for a period of time corresponding to the ratio determined for each respective performance characteristic of the plurality of performance characteristics; anddetermining, from the synthetic benchmarks, a composite score based on the performance of the executed synthetic benchmarks, wherein the composite score predicts the performance of the software application on the distributed computer system and is stored in the benchmark profile. 9. The computer-readable storage medium of claim 8, wherein the ratio determined for each of the plurality of performance characteristics is determined for each of the plurality of subroutines. 10. The computer-readable storage medium of claim 8, wherein the software application is configured to execute on a distributed computer system, and wherein each of the plurality of subroutines is executed on at least one node of the distributed computer system. 11. The computer-readable storage medium of claim 8, wherein identifying the plurality of performance characteristics is associated with the software application comprises evaluation source code of the software application. 12. The computer-readable storage medium of claim 8, wherein a user identifies at least one of the plurality of performance characteristics associated with the software application. 13. The computer-readable storage medium of claim 8, wherein identifying the plurality of performance characteristics associated with the software application comprises dynamically monitoring the software application running on a distributed computer system. 14. The computer readable storage medium of claim 8, wherein each of the plurality of performance characteristics characterize at least one of processor utilization, memory utilization, input/output efficiency, storage device access latency, memory access latency, storage device access latency, and network latency of a distributed computer system. 15. A system comprising;a processor; anda memory containing a program configured to generate a benchmark profile used to predict the performance of a software application, including a plurality of subroutines which, when executed on the processor performs an operation of:identifying a plurality of performance characteristics associated with the software application, wherein each performance characteristic specifies a processing activity performed by the software application, and wherein at least one performance characteristic is associated with more than one of the plurality of subroutines;for each of the plurality of performance characteristics, determining a ratio specifying a proportion of the processing activity performed by the software application for the performance characteristic relative to the processing activity of the software application as a whole;for each of the plurality of performance characteristics, identifying at least one synthetic benchmark configured to evaluate the performance of a computer system relative to the performance characteristic;generating the benchmark profile, wherein the benchmark profile stores the ratio determined for each of the plurality of performance characteristics and an indication of each identified synthetic benchmark;executing the synthetic benchmarks, each of the synthetic benchmarks identified in the benchmark profile, on a distributed computer system for a period of time corresponding to the ratio determined for each respective performance characteristic of the plurality of performance characteristics; anddetermining, from the synthetic benchmarks, a composite score based on the performance of the executed synthetic benchmarks, wherein the composite score predicts the performance of the software application on the distributed computer system and is stored in the benchmark profile. 16. The system of claim 15, wherein the ration determined for each of the plurality of performance characteristics is determined for each of the plurality of sub routines. 17. The system of claim 15, wherein the software application is configured to execute on a distributed computer system, and wherein each of the plurality of subroutines is executed on at least one node of the distributed computer system. 18. The system of claim 15, wherein identifying the plurality of performance characteristics is associated with the software application comprises evaluation source code of the software application. 19. The system of claim 15, wherein identifying the plurality of performance characteristics associated with the software application comprises dynamically monitoring the software application running on a distributed computer system. 20. The system of claim 15, wherein a user identifies at least on of the plurality of performance characteristics associated with the software application. 21. The system of claim 15, wherein each of the plurality of performance characteristics characterize at least one of processor utilization, memory utilization, input/output efficiency, storage device access latency, memory access latency, storage device access latency, and network latency of a distributed computer system.