Microservice Bottleneck Detection via Thread Profiling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Microservice applications often experience bottlenecks due to resource limitations and architectural constraints, which can lead to scalability issues and performance degradation, especially during high usage periods, despite declared resource requirements in cloud systems.

Innovation Solution

A method that involves collecting thread profiles and network connectivity data by timer-based sampling, constructing a microservice dependency graph, and aligning nodes to bar graphs to visualize the average number of working threads, allowing for the identification and optimization of bottlenecks by drilling down into flame graphs and weighted dependency graphs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If microservice applications are deployed with declared resource requirements in cloud systems, then resource allocation is improved, but performance degradation occurs during high usage periods due to resource limitations and architectural constraints

Engineering Contradiction:
Improveresource allocationVSAvoidperformance during high usage
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the microservice system into multiple independent services that can be monitored and optimized individually. By breaking down the complex monolithic application into smaller microservices, the system can identify and address bottlenecks at the service level without affecting the entire application, thereby improving performance during high usage periods while maintaining declared resource allocation

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically changes operational parameters such as thread pool sizes, timeout values, and retry policies based on real-time system conditions. This allows the system to adapt resource utilization patterns during high usage periods, optimizing performance without requiring changes to declared resource requirements in the cloud system

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If comprehensive monitoring of thread profiles and network connectivity is implemented, then bottleneck detection accuracy is improved, but system complexity and overhead increase

Engineering Contradiction:
Improvebottleneck detection accuracyVSAvoidmonitoring system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements a universal monitoring agent that collects multiple types of data (thread profiles, network connectivity, heap usage, GC statistics) through a single integrated interface. This multi-functional approach improves bottleneck detection accuracy by correlating different data types while avoiding the complexity of multiple separate monitoring systems

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces an intermediary component that acts as a bridge between the microservices and the monitoring system. This intermediary collects and normalizes data from various sources, providing accurate bottleneck detection while shielding the core microservices from monitoring complexity and overhead

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If detailed thread state classification and dependency graph construction are performed, then bottleneck identification precision is improved, but processing time and computational resources increase

Engineering Contradiction:
Improvebottleneck identification precisionVSAvoidprocessing time for analysis
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary classification of thread states and construction of dependency graphs during normal operation rather than during bottleneck analysis. By pre-processing and organizing data in advance, the system can quickly identify bottlenecks when they occur without incurring significant processing delays, thus improving identification precision while minimizing time loss

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11755360B2Detecting layered bottlenecks in microservices
Publication Date: 2023.09.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11755360B2 patent drawing
  • US11755360B2 patent drawing
  • US11755360B2 patent drawing

AI summary

A computer-implemented method for detecting bottlenecks in microservice cloud systems is provided including identifying a plurality of nodes within one or more clusters associated with a plurality of containers, collecting thread profiles and network connectivity data by periodically dumping stacks of threads and identifying network connectivity status of one or more containers of the plurality of containers, classifying the stacks of threads based on a plurality of thread states, constructing a microservice dependency graph from the network connectivity data, aligning the plurality of nodes to bar graphs to depict an average number of working threads in a corresponding microservice, and generating, on a display, an illustration outlining the plurality of thread states, each of the plurality of thread states having a different representation.