Application performance data processing
AssigneeAdvanced Micro Devices, Inc.
InventorsMax Alt, Paulo Roberto Pereira de Souza filho
Life of this patent
Estimating the term…
Abstract
A system and method for generating performance assistance charts is disclosed. An application performance spectrometer aggregates collected application performance data by scaling, normalizing and quantizing the data so that all samples indicative of low performance appear on one side of the graph, all samples indicative of high performance appear on the other side of the graph, and samples in between are positioned relative to those two poles in quantized buckets. The spectrometer may be used to visualize an application's performance characteristics, and as an application fingerprint may be used to compare different applications and determine which have similar performance profiles.
Claims19
A method for processing application performance data, the method comprising:
- executing a performance tracking tool on a first computing system to collect performance data for a new application also executing on the first computing system, wherein the performance data comprises a plurality of different performance counters;
- normalizing the collected performance data;
- quantizing the normalized performance data;
- creating an application performance fingerprint for the new application by combining the quantized and normalized performance data representing the different performance counters;
- and
- predicting a performance of the new application on a second computing system using performance data collected for one or more similar prior executed applications, wherein each similar prior executed application includes multiple fingerprints corresponding to execution on different computing systems or configurations, and the prediction is based on one or more of those fingerprints;
- selecting a configuration of the second computing system for executing the new application based on the predicted performance;
- executing the new application on the second computing system using the selected configuration;
- and
- generating a hot spot chart that identifies performance bottlenecks in the new application by categorizing functions based on a percentage of time spent during execution;
- wherein the hot spot chart distinguishes between I/O latency-bound and I/O bandwidth-bound performance characteristics.
A method for managing application performance, the method comprising:
- executing a performance tracking tool on a first computing system to collect performance data for a new application also being executed on the first computing system, wherein the performance data comprises a plurality of different performance counters;
- creating an application performance fingerprint for the new application by (i) quantizing and normalizing the collected performance data, and (ii) combining the quantized and normalized data into a histogram representation that numerically correlates low and high-performance samples;
- comparing the application performance fingerprint for the new application with a plurality of stored application performance fingerprints generated from prior executed applications, each fingerprint corresponding to execution of a prior application on a particular computing system or computing system configuration, to identify one or more similar prior executed applications based on a similarity metric;
- predicting a performance of the new application on a second computing system or configuration by identifying one or more previously executed applications whose fingerprints are similar to the fingerprint of the new application, and using performance data of those similar applications obtained from executions on the second computing system or configuration to estimate an expected performance of the new application on the second computing system;
- automatically generating a configuration recommendation identifying at least one computing system or configuration for optimized execution of the new application based on the predicted performance;
- allocating computing resources of the second computing system or configuration in accordance with the recommendation;
- and
- dispatching the new application to the allocated computing resources for execution, thereby automatically optimizing deployment of the new application based on a predicted performance counters.
A system having at least one processor, the system configured to:
- execute a performance tracking tool on a first computing system to collect performance data for a new application also executing on the first computing system, wherein the performance data comprises a plurality of different performance counters;
- normalize the collected performance data;
- quantize the normalized performance data;
- create an application performance fingerprint for the new application by combining the quantized and normalized performance data representing the different performance counters;
- and
- predict a performance of the new application on a second computing system using performance data collected for one or more similar prior executed applications, wherein each similar prior executed application includes multiple fingerprints corresponding to execution on different computing systems or configurations, and the prediction is based on one or more of those fingerprints;
- generate, from the normalized performance data, an application performance histogram that categorizes performance characteristics of the new application by transaction size to distinguish between I/O-latency-bound, I/O-bandwidth-bound, network-latency-bound, and network-bandwidth-bound workloads;
- select a configuration of the second computing system for executing the new application based on the predicted performance and the categorized performance characteristics identified in the application performance histogram;
- and
- execute the new application on the second computing system using the selected configuration.
Dependencies are inferred from the claim text.