Swap Fairness for Thrashing Mitigation - Centre of Innovation in Telecommunications and Integration of services Accéder directement au contenu
Rapport (Rapport De Recherche) Année : 2013

Swap Fairness for Thrashing Mitigation

Résumé

The swap mechanism allows operating systems to manage more memory than the available RAM space, by temporarily storing unused memory pages on disk. However, disk transfers are way slower than normal RAM operations, and under memory pressure, the system may spend more time in retrieving and storing swapped pages than performing actual computation: this state is called memory thrashing. To reduce thrashing, several ideas were brought up to optimize page replacement algorithms and system-wide load. For instance, Linux currently implements the swap-token, a mechanism designed to immunize the memory pages of the heaviest process against swapping. Such a mechanism eliminates early thrashing peaks and improves general system performance if the process is to finish quickly. The swap-token may however be counterproductive when it is tricked into advantaging malicious or long-standing processes. This is particularily true in the context of shared hosting or virtualization, where multiple users run uncoordinated and selfish workloads. In this paper, we present an accounting layer that forces swap fairness among processes competing for main memory. It ensures that a process cannot perform longer swap operations than others, and delays the swap operations of processes abusing the swapping mechanism. With such a layer, we are able to significantly reduce the dispersion of execution times under memory pressure, and generally improve the performance of legit, memory-heavy processes running concurrently with abusive ones.
Le mécanisme de swap permet à un système d'exploitation de travailler avec plus de mémoire que la quantité de RAM disponible, en déchargeant temporairement sur le disque les pages inutilitées. Cependant, les communications avec le disque sont beaucoup plus lentes que les opérations mémoires classiques. En cas de forte contention mémoire, le système peut donc se retrouver à passer l'essentiel de son temps à transférer des données depuis et vers le disque plutôt qu'à exécuter les programmes. On parle alors d'écroulement (thrashing). Pour atténuer ce problème, les approches classiques proposent des algorithmes optimisés de remplacement de page, ou des techniques de réduction de la charge globale du système. Par exemple, Linux emploie une technique appelée jeton de swap (swap-token), conçue pour protéger l'un des processus du système contre tout déchargement de page. Ce mécanisme vise à permettre à ce processus de terminer son exécution le plus rapidement possible, de façon à faire redescendre la pression sur le swap. Cependant, le swap-token se révèle inefficace, voire contre-productif lorsqu'il se trompe et qu'il favorise un processus malveillant, ou simplement durable. Ce problème est particulièrement sévère dans le contexte de l'hébergement mutualisé ou de la virtualisation, où plusieurs utilisateurs doivent se partager une machine et y exécuter plusieurs charges de travail simulatnées et égoïste. Dans ce rapport, nous présentons une couche de facturation qui force l'équité entre tous les processus en compétition pour la mémoire. De cette façon, un processus ne peut pas s'accaparer le mécanisme de swap, ni retarder déraisonnablement les requêtes de swap des autres processus. Cette couche permet de réduire significativement la dispersion des temps d'exécution de programmes en situation de contention mémoire, et de manière générale, d'améliorer la performance des application légitimes lorsqu'elles s'exécutent en concurrence avec des applications abusives.
Fichier principal
Vignette du fichier
RR-8388.pdf (479.17 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-00879084 , version 1 (31-10-2013)

Identifiants

  • HAL Id : hal-00879084 , version 1

Citer

François Goichon, Guillaume Salagnac, Stéphane Frénot. Swap Fairness for Thrashing Mitigation. [Research Report] RR-8388, INRIA. 2013, pp.17. ⟨hal-00879084⟩
196 Consultations
279 Téléchargements

Partager

Gmail Facebook X LinkedIn More