Cadre pour gérer les interférences de ressources dans les applications
Un nouveau cadre vise à réduire les problèmes de performance pour les services sensibles à la latence.
― 8 min lire
Table des matières
- Comprendre les Services Sensibles à la Latence et les Jobs à Effort Optimal
- Le Problème d'Interférence
- Perspectives Issues de l'Analyse des Données
- Le Cadre Proposé : PISM
- Évaluation de PISM
- Stratégies de Planification des Jobs
- Résultats à Partir de Données Réelles
- Implications pour les Recherches Futures
- Conclusion
- Source originale
- Liens de référence
Dans l'environnement informatique d'aujourd'hui, de nombreuses applications tournent ensemble sur les mêmes serveurs physiques pour tirer le meilleur parti des ressources disponibles. Cette pratique peut être efficace, mais elle peut aussi causer des problèmes de performance, surtout pour les applications qui ont besoin de réponses rapides. Ces applications sont appelées services sensibles à la latence (LCS), et leur performance peut être affectée par d'autres jobs qui sont moins pressants, connus sous le nom de jobs à effort optimal (BEJ). Quand les deux types de jobs sont sur le même serveur, ils se battent pour des ressources comme le CPU et la mémoire, ce qui peut ralentir la performance des LCS même si des efforts sont faits pour les séparer.
Grâce à une analyse approfondie des données de différents clusters de production, on observe que les BEJ affichent souvent des motifs réguliers dans leur Utilisation des ressources. Ils sont une source importante d'interférence pour les LCS, et les divers types de BEJ peuvent impacter la performance des LCS de différentes manières. Pour remédier à ce problème, nous proposons un cadre conçu pour évaluer et réduire l'interférence de performance que subissent les LCS à cause des BEJ qui coexistent.
Comprendre les Services Sensibles à la Latence et les Jobs à Effort Optimal
Les LCS sont des applications qui nécessitent des réponses rapides aux demandes des utilisateurs et incluent des tâches comme les achats en ligne, la messagerie et les recherches web. Ces services sont conçus pour traiter rapidement les demandes entrantes en faisant fonctionner plusieurs instances sur divers serveurs. Pour gérer les charges de travail changeantes, le nombre d'instances LCS peut varier selon la demande.
D'un autre côté, les BEJ sont des jobs par lots créés pour traiter de grandes quantités de données sans exigences strictes en matière de temps de réponse. Ces jobs se concentrent principalement sur des tâches de traitement de données et ne nécessitent pas de résultats immédiats. Comme ils peuvent utiliser des ressources significatives, il est crucial que leur Planification soit gérée correctement lorsqu'ils fonctionnent aux côtés des LCS.
Le Problème d'Interférence
Co-localiser les LCS et les BEJ entraîne souvent des problèmes de performance à cause de la compétition pour les ressources. Cette compétition peut ralentir la performance des LCS, ce qui est essentiel pour maintenir la qualité de service. Le défi est de traiter cette interférence de manière efficace.
Il y a trois principales complexités quand il s'agit de gérer l'interférence dans les clusters de production :
Besoins en Ressources Diversifiés : Différentes applications ont souvent des exigences variées en matière de ressources, entraînant différents résultats de performance.
Interférence Réciproque : Il peut être difficile de déterminer quelle application cause la baisse de performance quand de nombreuses applications fonctionnent sur le même serveur.
Charges de Travail Dynamiques : Les types et la quantité de ressources utilisées par les applications peuvent changer rapidement, rendant difficile l'élaboration d'un plan de gestion de l'interférence stable.
Développer des stratégies efficaces pour planifier les BEJ afin de minimiser leurs effets négatifs sur les LCS est essentiel dans ces environnements.
Perspectives Issues de l'Analyse des Données
Dans notre analyse détaillée de datasets réels provenant de deux grands clusters de production, nous avons made plusieurs observations importantes :
Les BEJ sont souvent responsables de la domination de l'utilisation des ressources sur les serveurs, entraînant des problèmes de performance pour les LCS.
De nombreux BEJ répètent régulièrement leurs motifs d'exécution au fil du temps.
Même lorsque les BEJ occupent des niveaux de ressources similaires, les différents types peuvent toujours causer des Interférences variables sur la performance des LCS.
Étant donné la nature dynamique de ces clusters, nous déplaçons notre attention vers la compréhension de l'impact collectif des BEJ plutôt que d'analyser simplement chacun individuellement.
Le Cadre Proposé : PISM
Pour traiter l'interférence causée par les BEJ, nous avons développé PISM, qui signifie Performance Interference Scoring and Mitigating framework. Voici comment PISM fonctionne :
Caractérisation des BEJ : PISM identifie d'abord et classe les BEJ par leur utilisation des ressources. En les regroupant selon leur comportement et leurs demandes en ressources, PISM simplifie la complexité de l'analyse d'interférence.
Modélisation des Relations : PISM modélise l'interaction entre différentes compositions de BEJ sur un serveur et les temps de réponse des LCS. Cette modélisation aide à prédire le degré d'interférence qui peut se produire.
Évaluation de l'Interférence : PISM crée un système de notation pour quantifier l'interférence en fonction des temps de réponse des LCS. Cette notation aide à prendre des décisions éclairées lors de la planification des BEJ, garantissant que les LCS bénéficient de conditions optimales pour bien performer.
Évaluation de PISM
L’efficacité de PISM a été testée dans un cluster à petite échelle, et grâce à des simulations étendues, nous avons constaté d'importantes améliorations. PISM a pu réduire l'interférence de jusqu'à 41,5 %, ce qui a entraîné une augmentation remarquable de 76,4 % du débit pour les LCS qui subissent le plus de pression lors du traitement.
Stratégies de Planification des Jobs
Quand les LCS et les BEJ partagent un serveur, gérer leurs charges de travail est crucial. La planification des BEJ doit être gérée avec soin pour minimiser les impacts de performance sur les LCS. Plusieurs stratégies de planification peuvent être utilisées :
Planification Prédictive : Cette méthode implique d'estimer la performance attendue des applications lorsqu'elles sont co-localisées. Elle aide à identifier quels serveurs causeraient le moins d'interférence.
Réservation de Ressources : En réservant des quantités spécifiques de CPU et de mémoire pour les LCS, cette stratégie empêche les BEJ de consommer trop de ressources qui pourraient entraîner des baisses de performance.
Équilibrage de Charge : Distribuer les charges de travail de manière uniforme sur les serveurs peut aider à gérer les demandes en ressources efficacement, réduisant la probabilité de goulets d'étranglement.
Chacune de ces stratégies peut être utilisée séparément ou conjointement, selon les exigences spécifiques des applications impliquées.
Résultats à Partir de Données Réelles
En utilisant des données de clusters de production, nous avons constaté que :
Dominance des Ressources par les BEJ : La plupart de l'utilisation des ressources sur les serveurs est attribuée aux BEJ. Les LCS, bien qu'ayant des niveaux de ressources stricts, affichent souvent de faibles taux d'utilisation.
Répétabilité de l'Exécution des BEJ : De nombreux BEJ suivent des motifs d'exécution prévisibles, ce qui les rend plus faciles à catégoriser et à planifier.
Sensibilité à la Performance : Différents LCS montrent des niveaux de sensibilité variables à l'interférence des BEJ, indiquant que certaines applications peuvent nécessiter plus de protection contre la contention des ressources que d'autres.
Implications pour les Recherches Futures
Les résultats mettent en lumière une voie pour des recherches futures visant à améliorer l'utilisation des ressources sans compromettre la performance des LCS critiques. Examiner l'impact spécifique des différentes compositions de BEJ et leurs exigences en ressources peut mener à des algorithmes de planification plus raffinés.
Conclusion
Notre travail présente un cadre robuste pour la planification des ressources dans des clusters de production où coexistent LCS et BEJ. En comprenant la dynamique de la performance des applications et de l'interférence, nous pouvons améliorer les temps de réponse des LCS tout en maximisant l'utilisation des ressources disponibles. Cette approche améliore non seulement la performance des LCS mais peut également contribuer positivement à la performance des BEJ qui fonctionnent à leurs côtés.
À mesure que les environnements de production continuent d'évoluer, le besoin d'une planification efficace des ressources devient encore plus vital, garantissant que les applications répondent aux demandes des utilisateurs de manière fiable et efficace.
Le cadre PISM représente une étape prometteuse vers l'atteinte de cet objectif, avec un potentiel de développement et d'application supplémentaires dans divers environnements de cluster.
Titre: Mitigating Interference of Microservices with a Scoring Mechanism in Large-scale Clusters
Résumé: Co-locating latency-critical services (LCSs) and best-effort jobs (BEJs) constitute the principal approach for enhancing resource utilization in production. Nevertheless, the co-location practice hurts the performance of LCSs due to resource competition, even when employing isolation technology. Through an extensive analysis of voluminous real trace data derived from two production clusters, we observe that BEJs typically exhibit periodic execution patterns and serve as the primary sources of interference to LCSs. Furthermore, despite occupying the same level of resource consumption, the diverse compositions of BEJs can result in varying degrees of interference on LCSs. Subsequently, we propose PISM, a proactive Performance Interference Scoring and Mitigating framework for LCSs through the optimization of BEJ scheduling. Firstly, PISM adopts a data-driven approach to establish a characterization and classification methodology for BEJs. Secondly, PISM models the relationship between the composition of BEJs on servers and the response time (RT) of LCSs. Thirdly, PISM establishes an interference scoring mechanism in terms of RT, which serves as the foundation for BEJ scheduling. We assess the effectiveness of PISM on a small-scale cluster and through extensive data-driven simulations. The experiment results demonstrate that PISM can reduce cluster interference by up to 41.5%, and improve the throughput of long-tail LCSs by 76.4%.
Auteurs: Dingyu Yang, Kangpeng Zheng, Shiyou Qian, Jian Cao, Guangtao Xue
Dernière mise à jour: 2024-07-16 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2407.12248
Source PDF: https://arxiv.org/pdf/2407.12248
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.