Combining Distributed and Kernel Tracing for Performance Analysis of Cloud Applications

Distributed tracing allows tracking user requests that span across multiple services and machines in a distributed application. However, typical cloud applications rely on abstraction layers that can hide the root cause of latency happening between processes or in the kernel. Because of its focus on...

Full description

Saved in:
Bibliographic Details
Main Authors: Loïc Gelle, Naser Ezzati-Jivan, Michel R. Dagenais
Format: article
Language:EN
Published: MDPI AG 2021
Subjects:
Online Access:https://doaj.org/article/ea9abda5f00a425099c8b93d85ebe68d
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Distributed tracing allows tracking user requests that span across multiple services and machines in a distributed application. However, typical cloud applications rely on abstraction layers that can hide the root cause of latency happening between processes or in the kernel. Because of its focus on high-level events, existing methodologies in applying distributed tracing can be limited when trying to detect complex contentions and relate them back to the originating requests. Cross-level analyses that include kernel-level events are necessary to debug problems as prevalent as mutex or disk contention, however cross-level analysis and associating events in the kernel and distributed tracing data is complex and can add a lot of overhead. This paper describes a new solution for combining distributed tracing with low-level software tracing in order to find the latency root cause better. We explain how we achieve a hybrid trace collection to capture and synchronize both kernel and distributed request events. Then, we present our design and implementation for a critical path analysis. We show that our analysis describes precisely how each request spends its time and what stands in its critical path while limiting overhead.