Affordable Access

Unified Kernel/User-Space Efficient Linux Tracing Architecture

Authors
Publication Date

Abstract

RÉSUMÉ De nos jours, il n'est pas inhabituel de voir de grands centres de données regroupant des centaines de serveurs déployant de grosses applications, des systèmes d'exploitation hétérogènes et différentes technologie de virtualisation. Implanter du traçage dans ce genre d'environnement peut s'avérer utile pour la surveillance et le débogage de problèmes de production. Avec les dernière architecture de traçage développé, il peut être difficile d'atteindre un tel objectif dans un environnement multi-utilisateur et également traiter les questions de sécurité. Dans cette recherche, nous proposons une nouvelle architecture de traçage unifiée combinant l'espace noyau et utilisateur visant à répondre aux contraintes de production en termes de sécurité et de performance. Avec le traceur en espace utilisateur, le nombre de sources de données augmentent, où non seulement le noyau peut être traçée mais plusieurs applications en même temps. Cette nouvelle architecture présente un démon de session qui devient une nouvelle composante de traçage agissant comme un point de rendez-vous pour toutes les interactions avec les traceurs. Ce démon agit comme un registre de sessions de traçage pour les utilisateurs abstrayant les traceurs à des domaines. Nous proposer un ensemble de structure de données sans verrou et des algorithmes utilisés pour construire la base de registre rendant cette composante très performante. Cela a permis la création du projet lttng-tools, basée sur les traceurs de LTTng 2.0,qui met en oeuvre l'architecture proposée. Nous avons développé plusieurs algorithmes pour gérer et fournir un système multi-session et multi-utilisateur tout en gardan une empreinte mémoire et CPU basse sur la machine cible. Avec l'abilité du traceur de l'espace utilisateur de s'enregistrer au démarrage au démon de session, de nouvelles fonctionnalités sont disponibles comme lister des applications tracable et de permettre de tracer des évènements disponibles seulement au démarrage de l'application. Nous avons démontrer l'exactitude de notre modèle en utilisant le traçage noyau par ce nouveau composant pour analyser la performance de grosses applications de qui a été inspiré la conception des mécanismes internes de parallélisme. Enfin, cette étude présente les travaux futurs et les améliorations possibles du modèle proposé et examine les défis à venir.----------ABSTRACT Nowadays, it is not unusual to see large data centers regrouping hundreds of servers mixing large applications, heterogeneous kernels and different virtualization technology. Deploying tracing in these kinds of environments can prove to be useful for monitoring and debugging production problems. With today's tracing architecture, it can be difficult to achieve such goal in a multi-user environment while also dealing with security issues. In this research, we propose a new unied tracing architecture combining kernel and user space aimed at addressing production constraints in terms of security and low-instrusiveness for large scale deployment. With user space tracers, data sources increase where not only the kernel can be traced but multiple applications at the same time. This new architecture introduces a session daemon which becomes a new tracing component acting as a rendez-vous point for all interactions with the tracers. This daemon acts as a tracing registry providing tracing sessions to users, abstracting tracers to domains. We propose a set of lockless data structures and algorithms used to build the registry and making this component very efficient. This brought to life the lttng-tools project, based on the LTTng 2.0 tracers, which implements the proposed architecture. We have developed several algorithms to handle and provide a multi-session and multi-user tracing environment with a low memory and CPU footprint on the target machine. With the user space tracer ability to register at startup to the session daemon, a new set of features are available, from listing traceable applications to enabling events before registration, allowing recording of very early events during the boostrap process of the program. We have demonstrated the usability of our model by using kernel tracing through this new component to analyze the performance of large applications, which inspired us to design internal multithreaded mechanisms. Finally, this study presents future work and possible improvements to the proposed model and discusses the next challenges.

There are no comments yet on this publication. Be the first to share your thoughts.