Dynamic Runtime Performance Data Collection and Tuning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern computing systems face challenges in identifying performance bottlenecks due to the limited number of performance counters and buffer space, requiring repeated application restarts to monitor a wide range of performance events, which is undesirable.
Innovation Solution
A method and system for dynamic data collection that continuously executes an application, collecting high-level performance event data, analyzing it in real-time, and re-configuring hardware to collect lower-level event data, allowing for continuous monitoring and tuning without restarting the application.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If performance counters are configured to measure a wide range of performance events, then measurement precision is improved, but device complexity increases due to limited counter availability
Solution Approach 1:
The system dynamically reconfigures performance counters at runtime based on detected performance bottlenecks. Instead of statically configuring counters for all possible events, the system adapts the counter configuration to focus on the specific performance events causing bottlenecks, thereby improving measurement precision for relevant events without requiring a fixed complex structure for all possible events.
Solution Approach 2:
The system changes the parameters being measured by reconfiguring which performance events are monitored based on runtime conditions. When a performance bottleneck is detected, the system modifies the counter configuration parameters to focus on the underlying causes of that specific bottleneck, allowing precise measurement of relevant events without maintaining complex configurations for all possible events simultaneously.
2Measurement precision
If data is collected for all possible performance events simultaneously, then measurement precision is improved, but loss of information occurs due to limited buffer space
Solution Approach 1:
The system extracts and focuses on collecting data only for the specific performance events that are causing bottlenecks, rather than attempting to collect data for all possible events simultaneously. By identifying the root cause events and extracting only those relevant data streams for detailed monitoring, the system avoids buffer overflow while maintaining measurement precision for the critical performance events.
3Measurement precision
If the application is restarted multiple times to collect data for different performance event subsets, then measurement precision is improved, but productivity decreases
Solution Approach 1:
The system enables continuous performance monitoring without interrupting application execution. By implementing runtime reconfiguration of performance counters and continuous collection of performance data during application operation, the system maintains productivity while achieving accurate bottleneck identification through persistent monitoring rather than repeated restarts.
Solution Approach 2:
The system implements a feedback mechanism where performance data is continuously collected and analyzed during runtime, and the results are used to dynamically adjust the monitoring focus. This closed-loop approach allows the system to identify bottlenecks accurately while the application continues to run, using the feedback from performance measurements to guide further monitoring without requiring application restarts.
Data Source
AI summary
A device dynamically collects runtime data while the device is continuously executing an application to identify the cause of a performance bottleneck. The device hardware first collects data of high-level performance events that indicate alternative causes for the performance bottleneck. Based on real-time analysis of the data, a first performance event is identified among the high-level performance events for causing the performance bottleneck. The device hardware is then re-configured to collect additional data of lower-level performance events that are under the first performance event and indicate additional alternative causes more specific than the alternative causes. The collecting, identifying, and re-configuring are performed while the device is continuously executing the application.


