2020 · IEEE 20th International Working Conference on Source Code Analysis and Manipulation (SCAM)

DepGraph: Localizing Performance Bottlenecks in Multi-Core Applications Using Waiting Dependency Graphs and Software Tracing

Naser Ezzati-Jivan | Quentin Fournier | Michel R. Dagenais | Abdelwahab Hamou-Lhadj

Evidence basis: full-text-reviewed · Review status: catalog-reviewed; paper-author approval pending

kernel-tracing performance-analysis root-cause-analysis multicore-systems

waiting dependency graph system-level tracing blocking dependencies performance bottlenecks thread-resource interactions

Core contribution: DepGraph uses system-level tracing to expose the waiting dependencies that divide a task's execution time across threads and hardware resources.

Abstract

This paper addresses the challenge of understanding the waiting dependencies between the threads and hardware resources required to complete a task. The objective is to improve software performance by detecting the underlying bottlenecks caused by system-level blocking dependencies. In this paper, we use a system level tracing approach to extract a Waiting Dependency Graph that shows the breakdown of a task execution among all the interleaving threads and resources. The method allows developers and system administrators to quickly discover how the total execution time is divided among its interacting threads and resources. Ultimately, the method helps detecting bottlenecks and highlighting their possible causes. Our experiments show the effectiveness of the proposed approach in several industry-level use cases. Three performance anomalies are analysed and explained using the proposed approach. Evaluating the method efficiency reveals that the imposed overhead never exceeds 10.1%, therefore making it suitable for in-production environments.

Source: arXiv:2103.04933 abstract; public preprint version

Problem and motivation

System-level traces expose waiting and resource interactions, but conventional analysis does not present a compact causal view of why requests are delayed across threads and resources.

Method and contribution

DepGraph collects LTTng kernel events, reconstructs process/resource states in a state database, recursively builds duration-weighted Waiting Dependency Graphs, groups executions with k-means, and compares representative graphs to expose direct and indirect dependencies.

Findings and evidence

The method identified lock contention in a slow Apache/PHP request, CPU/interruption contention in Cyclictest, and disk contention in Apache workloads. Across Sysbench CPU/IO/mixed workloads, dependency tracing stayed within 10.1% relative duration overhead; Babeltrace 3 decoding and graph analysis remained measurable but practical on the test machine.

Limitations and future directions

Limitations: The study uses one Linux machine and selected workloads/use cases. The graph is primarily an off-CPU/resource-waiting abstraction; broad portability, distributed/network causal analysis, and causal validation beyond graph comparison are unknown.

Future work: Extend the graph model and evaluation to broader systems, workloads, and distributed/network settings; reduce state/decoding cost and improve automated interpretation of graph differences.

Sources and identifiers

When to cite this paper

Cite this paper when your work uses or compares waiting Dependency Graphs that unify thread and resource waiting causes.

Citation

BibTeX
@inproceedings{ezzatiJivan2020depgraphlocalizing,
  author = {Naser Ezzati-Jivan and Quentin Fournier and Michel R. Dagenais and Abdelwahab Hamou-Lhadj},
  title = {DepGraph: Localizing Performance Bottlenecks in Multi-Core Applications Using Waiting Dependency Graphs and Software Tracing},
  year = {2020},
  booktitle = {IEEE 20th International Working Conference on Source Code Analysis and Manipulation (SCAM)},
  pages = {149-159},
  publisher = {IEEE},
  doi = {10.1109/SCAM51674.2020.00022},
  url = {https://doi.org/10.1109/SCAM51674.2020.00022}
}
Other citation formats for Word and reference managers
APA 7
Ezzati-Jivan, N., Fournier, Q., Dagenais, M. R., & Hamou-Lhadj, A. (2020). DepGraph: Localizing Performance Bottlenecks in Multi-Core Applications Using Waiting Dependency Graphs and Software Tracing. In IEEE 20th International Working Conference on Source Code Analysis and Manipulation (SCAM) (pp. 149-159). https://doi.org/10.1109/SCAM51674.2020.00022
IEEE
N. Ezzati-Jivan, Q. Fournier, M. R. Dagenais, and A. Hamou-Lhadj, "DepGraph: Localizing Performance Bottlenecks in Multi-Core Applications Using Waiting Dependency Graphs and Software Tracing," in IEEE 20th International Working Conference on Source Code Analysis and Manipulation (SCAM), pp. 149-159, 2020, doi: 10.1109/SCAM51674.2020.00022

Readable Markdown record · JSON record · Download RIS