<  Retour au portail Polytechnique Montréal

Analyse de performances des réseaux programmables, à partir d'une trace d'exécution

Adel Belkhiri

Thèse de doctorat (2021)

Document en libre accès dans PolyPublie
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Conditions d'utilisation: Tous droits réservés
Télécharger (6MB)
Afficher le résumé
Cacher le résumé

Résumé

De nos jours, plusieurs architectures réseau innovantes, telles que les réseaux définis en logiciel (SDN) et la virtualisation des fonctions de réseau (NFV), ont été proposées, afin de répondre aux besoins des applications modernes, en bande passante et flexibilité. L'objectif de ces architectures est d'augmenter la programmabilité des réseaux, afin de faciliter leur gestion, et rendre plus flexible le déploiement des nouveaux services. En effet, le SDN repose sur la centralisation de l'intelligence du réseau dans une entité appelée Contrôleur SDN, et la suppression des fonctions de contrôle dans les équipements de transfert de données. D'un autre côté, la NFV se base sur l'exploitation des fonctions réseau (p. ex., routage, filtrage, équilibrage de charge) sous la forme d'applications qui s'exécutent dans des machines virtuelles, au lieu d'utiliser du matériel spécifique, cher et peu flexible. Dans ces architectures, le logiciel devient de plus en plus important, en prenant en charge des fonctions qui étaient auparavant remplies par du matériel dédié. Toutefois, cette "softwarisation" favorise davantage l'occurrence des bogues de performance dans les réseaux, et complique énormément le diagnostic de leurs causes profondes. Le travail de recherche que nous présentons dans cette thèse porte sur l'analyse de performance des solutions logicielles utilisées dans la mise en oeuvre des infrastructures SDN et NFV. En effet, nous proposons une approche d'analyse qui se base sur le traçage dans la collecte des données de performance requises pour les analyses. Pour appliquer cette approche, nous avons instrumenté le code source de plusieurs logiciels, comme DPDK, Open vSwitch, et KVMGT. Les points de trace insérés permettent de mettre en lumière le fonctionnement du logiciel observé, et de décrire en détails les interactions entre ses différents mécanismes. Pour capturer les données exportées par ces points de trace, nous avons utilisé un outil qui s'appelle Linux Trace Toolkit Next Generation (LTTng). Ce traceur est particulièrement connu pour son faible surcoût et sa capacité à tracer le noyau Linux, ainsi que les applications qui s'exécutent dans l'espace utilisateur.

Abstract

In recent years, several innovative network architectures, such as Software-Defined Networking (SDN) and Network Function Virtualization (NFV), have been proposed to meet the needs of modern applications for more bandwidth and flexibility. These architectures aim to make networks more programmable, in order to facilitate their management and to increase the flexibility of new services deployment. Hence, the SDN is based on moving the network intelligence from packet forwarding equipment to a central entity called SDN Controller. On the other hand, NFV is based on the use of applications running in virtual machines to execute network functions (e.g., routing, filtering, load balancing), instead of using expensive dedicated hardware. In these architectures, the software is becoming increasingly important, because it implements functions that were previously performed by hardware. Nevertheless, this "softwarization" causes the performance bugs in the network to become more frequent, and complicates the task of finding and analyzing their root causes.The focus of the research work presented in this thesis is on the performance analysis of software used in SDN and NFV infrastructures. Hence, we propose an analysis approach that uses tracing to collect performance data from various sources, such as the kernel and userspace applications. To implement this approach, we instrumented the source code of several network applications, such as Open vSwitch, DPDK, and KVMGT. The inserted tracepoints enable shedding light on the operations of the observed software, and describing the interactions between its different mechanisms. To capture the data exported by these tracepoints, we used a tool called Linux Trace Toolkit Next Generation (LTTng). This tool is particularly known for its low overhead and its ability to trace the Linux kernel and userspace applications. To minimize the impact of tracing on the performance of the observed software, we make a trade-off between the granularity of the tracing data and the overhead we believe the user can tolerate. The breakdown of the overhead induced by the data collection phase shows that the impact of the tracer on the execution time of the monitored application is minimal (<2%). However, the tracing overhead in terms of storage space is significant. We proposed, therefore, an efficient technique to reduce the size of generated traces. This technique consists of configuring the tracer to start, in the same time, two tracing sessions. The first session collects tracing data from a limited number of tracepoints. We analyze the data collected from this session to detect potential performance anomalies using online analyses.

Département: Département de génie informatique et génie logiciel
Programme: Génie informatique
Directeurs ou directrices: Michel Dagenais
URL de PolyPublie: https://publications.polymtl.ca/9988/
Université/École: Polytechnique Montréal
Date du dépôt: 25 avr. 2022 14:58
Dernière modification: 05 avr. 2024 17:19
Citer en APA 7: Belkhiri, A. (2021). Analyse de performances des réseaux programmables, à partir d'une trace d'exécution [Thèse de doctorat, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/9988/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document Afficher document