Virtual Machine Self-Tuning via Method Profiling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtual machine performance in computer systems is often suboptimal due to the need for manual tuning, which is time-consuming and requires deep understanding of the underlying implementation, and cannot adapt to dynamic application needs, especially since responsiveness and throughput are seldom complementary.

Innovation Solution

A system that profiles software code to dynamically tune a virtual machine by gathering statistics on method invocations and thread activity, using time-based sampling and instrumentation to determine the need for responsiveness or throughput, and adjusts configuration parameters accordingly, such as garbage collector and just-in-time compiler settings.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If virtual machine is tuned for responsiveness with low latency, then responsiveness is improved, but throughput deteriorates

Engineering Contradiction:
ImproveresponsivenessVSAvoidthroughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The virtual machine dynamically adjusts its tuning parameters based on real-time profiling data. The system continuously monitors method invocation patterns and thread activity, then adapts configuration parameters such as garbage collection behavior and thread scheduling to match current workload characteristics, allowing the VM to transition between responsiveness-oriented and throughput-oriented modes as needed

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes virtual machine configuration parameters dynamically based on profiled behavior. By monitoring statistics from instrumented methods and thread activity, the VM adjusts parameters like garbage collector settings, thread priorities, and memory management policies to optimize performance for the current application state, resolving the fixed trade-off between responsiveness and throughput

Inventive Principle:
Principle #35Parameter changes

2Productivity

If manual tuning of virtual machine parameters is performed, then performance optimization is achieved, but time consumption and complexity increase

Engineering Contradiction:
Improveperformance optimizationVSAvoidtuning time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The virtual machine performs self-tuning by automatically profiling its own execution behavior and adjusting its parameters accordingly. The system instruments its own methods, collects statistics on invocation patterns and thread activity, and uses this data to autonomously optimize configuration parameters without requiring external manual intervention or deep understanding of the VM implementation

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements a feedback loop where performance statistics from method invocations and thread activity are continuously collected and used to adjust VM parameters. This closed-loop approach allows the VM to learn from its own execution patterns and automatically optimize performance, eliminating the need for manual tuning while maintaining optimal performance across varying workloads

Inventive Principle:
Principle #23Feedback

3Stability of the object's composition

If virtual machine parameters are fixed during initial deployment, then system stability is maintained, but adaptability to dynamic application needs deteriorates

Engineering Contradiction:
Improvesystem stabilityVSAvoidadaptability to application needs
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The virtual machine transitions from a static configuration model to a dynamic one where parameters are continuously adjusted based on real-time profiling. The system maintains stability by making incremental, data-driven adjustments to configuration parameters rather than radical changes, while simultaneously adapting to varying application workloads through continuous monitoring and adjustment of performance characteristics

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9027011B1Using method-profiling to dynamically tune a virtual machine for responsiveness
Publication Date: 2015.05.05 SUN MICROSYSTEMS INC
  • US9027011B1 patent drawing
  • US9027011B1 patent drawing
  • US9027011B1 patent drawing

AI summary

One embodiment of the present invention provides a system that profiles software code to dynamically tune a virtual machine for responsiveness and/or throughput. First, the system profiles software code to track a need for a higher level of responsiveness and/or throughput. The system then gathers statistics for system behavior through the profiling techniques while executing the profiled software code, and uses these statistics to dynamically tune a virtual machine.