Automated Performance Debugging via Lightweight Sampling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging performance anomalies in cloud computing environments is challenging due to complexity and the difficulty in identifying which layer or module is causing slowdowns, especially in hybrid systems with multiple technologies and large-scale distributed systems, where traditional debugging methods are tedious and time-consuming.

Innovation Solution

An automated performance debugging method using lightweight sampling to collect key performance data, which is then analyzed using a decision-tree based model and call graph prefix binary tree to identify critical threads and hotspots, allowing for on-the-fly analysis and offline reporting with minimal runtime overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional debugging methods are used in cloud computing environments, then debugging can be performed, but the process becomes tedious and time-consuming

Engineering Contradiction:
Improvedebugging efficiencyVSAvoidtime to identify performance anomalies
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system automatically collects performance data, analyzes call stacks, and identifies bottlenecks without requiring manual intervention. The automated debugging system performs self-service by continuously monitoring application performance, processing thread dumps, and generating diagnostic reports, thereby eliminating the tedious manual debugging process while significantly reducing the time needed to identify performance anomalies.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual mechanical debugging processes with an automated computational system. Instead of manually analyzing thread dumps and call stacks, the system uses automated parsers, decision-tree models, and data structures to process and analyze performance data, substituting the mechanical manual analysis process with an efficient automated computational approach.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Measurement precision

If comprehensive performance monitoring is implemented in large-scale distributed systems, then performance bottlenecks can be identified, but system complexity increases

Engineering Contradiction:
Improveperformance anomaly detection accuracyVSAvoiddebugging system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The debugging system is segmented into distinct modular components: a data collection agent that gathers performance data, a parser that processes thread dumps, a decision-tree model that analyzes call stacks, and a reporting module that generates diagnostic reports. Each component handles a specific aspect of the debugging process, allowing the system to achieve comprehensive performance monitoring while managing complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary automated debugging system that sits between the complex distributed application and the user. This intermediary system handles the complexity of data collection, processing, and analysis, translating complex system-wide performance data into actionable diagnostic information, thereby enabling precise anomaly detection without exposing the full system complexity to users.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If automated performance debugging is implemented in production environments, then performance issues can be identified with minimal overhead, but data collection and processing resources are required

Engineering Contradiction:
Improveapplication performanceVSAvoidcomputational resources for data processing
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system uses sampling-based performance data collection rather than monitoring every single operation. By collecting performance data at strategic intervals and analyzing representative samples of thread dumps, the system achieves effective performance debugging with minimal computational overhead, avoiding the excessive resource consumption that would result from comprehensive continuous monitoring of all system operations.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP3510747B1Automated performance debugging of production applications
Publication Date: 2021.09.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3510747B1 patent drawingFigure 1a
  • EP3510747B1 patent drawingFigure 1b
  • EP3510747B1 patent drawingFigure 1c

AI summary

Performance anomalies in production applications can be analyzed to determine the dynamic behavior over time of hosting processes on the same or different computers. Problematic call sites (call sites that are performance bottlenecks or that are causing hangs) can be identified. Instead of relying on static code analysis and development phase load testing to identify a performance bottleneck or application hang, a lightweight sampling strategy collects predicates representing key performance data in production scenarios. Performance predicates provide information about the subject (e.g., what the performance issue is, what caused the performance issue, etc. ). The data can be fed into a model based on a decision tree to identify critical threads running the problematic call sites. The results along with the key performance data can be used to build a call graph prefix binary tree for analyzing call stack patterns. Data collection, analysis and visualizations of result can be performed.