IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Un nouveau contrôleur de mémoire pour le noyau Linux promet des économies de mémoire significatives


Sujet :

Linux

  1. #1
    Expert éminent sénior

    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Mars 2017
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2017
    Messages : 1 177
    Points : 78 775
    Points
    78 775
    Par défaut Un nouveau contrôleur de mémoire pour le noyau Linux promet des économies de mémoire significatives
    Un nouveau contrôleur de mémoire pour le noyau Linux promet des économies de mémoire significatives
    Notamment au niveau de la RAM, pour toutes les plateformes Linux

    Le gestionnaire de mémoire est un sous-ensemble du système d’exploitation qui partage la mémoire entre l’OS et les diverses applications. Le terme mémoire fait surtout référence la mémoire principale (=RAM), mais sa gestion demande la contribution de la mémoire auxiliaire et de la mémoire cache. Le gestionnaire de mémoire est notamment chargé d’allouer efficacement la mémoire aux processus, ce qui implique qu’il doit être capable de répertorier les emplacements libres de la mémoire disponible, d’allouer la mémoire nécessaire aux nouveaux processus et de récupérer la mémoire des processus qui se terminent. L’allocateur de processus à l’intérieur du noyau Linux est le SLAB allocator (ou SLAB tout simplement).

    Nom : 0 (1).jpg
Affichages : 7972
Taille : 15,2 Ko

    SLAB repose sur un système de blocs et de cache qui permet d’optimiser les demandes de mémoire. Ce type de gestion de la mémoire réduit la fragmentation causée par les opérations d’allocation et de délocalisation. L’allocation de blocs implique la mise en œuvre d’un cache pour un certain type/taille d’objet qui dispose d’un certain nombre de blocs de mémoire pré-allouées découpés en morceaux de taille fixe qui conviennent à des objets spécifiques. SLAB gère les morceaux de sorte que, lorsque le kernel est sollicité pour l’allocation de mémoire à un objet, il peut satisfaire cette demande avec un morceau libre d’un bloc existant. SLAB conserve la mémoire allouée en vue d’une réutilisation, lors d’affectations ultérieures d’objets similaires, et permet ainsi de réduire les frais généraux qui sont liés à l’initialisation de l’objet.

    Roman Gushchin, un membre de l’équipe d’ingénierie du noyau Linux chez Facebook, a découvert ce qu’il considère comme un « défaut grave » dans le contrôleur/gestionnaire de mémoire actuel. Et il a récemment proposé un nouveau contrôleur de mémoire de blocs qui promet de considérablement améliorer l’utilisation de la mémoire entre plusieurs « cgroups (ou control groups) » de mémoire en partageant des slab pages. Précisons que les cgroups renvoient à une fonctionnalité du noyau Linux qui permet de limiter, compter et isoler l’utilisation des ressources d’un système (processeur, mémoire, utilisation disque, etc.) et le terme « slab page » pourrait être assimilé au processus d’allocation de mémoire par SLAB.

    Nom : 8522129.jpg
Affichages : 4423
Taille : 39,8 Ko

    D’après Gushchin, « la véritable raison pour laquelle la conception existante conduit à un faible usage de SLAB est simple : les slab pages sont exclusivement utilisés par un seul cgroup de mémoire. S’il n’y a seulement quelques affectations d’une certaine taille effectuées par un cgroup ou si certains objets actifs sont laissés après que le cgroup ait été supprimé ou alors si le cgroup contient une application à thread unique qui n’alloue pratiquement aucun objet du noyau, mais le fait à chaque fois sur un nouveau CPU : dans tous ces cas, l’usage de SLAB qui en résulte est très faible. Si le calcul des kmem est désactivé, le noyau est capable d’utiliser l’espace libre sur les slab pages pour d’autres allocations ».

    Gushchin soutient que ce n’était pas un problème lorsque le contrôleur kmem a été introduit en tant que fonction opt-in qui devait être activée pour chaque cgroup mémoire. Maintenant, cependant, le contrôleur kmem est activé par défaut pour cgroup v1 et v2. Et comme les systèmes modernes ont tendance à créer un très grand nombre de cgroups, l’utilisation de SLAB est moins efficace. Selon lui, en partageant les slab pages entre plusieurs cgroups de mémoire et en utilisant un système remanié où la comptabilité est effectuée par objet plutôt que par page, on disposerait sur le noyau Linux d’un contrôleur de mémoire optimisé offrant un niveau d’utilisation beaucoup plus efficace.

    Le patch proposé par Gushchin contient deux éléments semi-indépendants : une API de chargement de sous-page pouvant être utilisée à l’avenir pour les besoins de comptabilité et une API mem_cgroup_ptr. Les tests effectués avec le nouveau contrôleur de mémoire proposé par Gushchin ont montré qu’il est possible de gagner entre 35 et 42 % de mémoire en plus sous Linux au niveau du Front-end Web, du cache de base de données, du serveur DNS et sur de nombreuses autres charges de travail. La proposition de Gushchin est actuellement sous le flag « request for comments ». Si elle est acceptée, elle pourrait être intégrée dans la version du noyau Linux dès 2020.

    Source : LKML

    Et vous ?

    Qu’en pensez-vous ?

    Voir aussi

    Si Linux a de la peine à s'imposer sur le desktop c'est à cause de la fragmentation de l'écosystème, d'après Linus Torvalds
    Google découvre des centaines de situations de compétition dans le noyau Linux en se servant de KCSAN, son nouveau détecteur de courses critiques pour le noyau Linux
    Des vulnérabilités de corruption de mémoire dans systemd affectent la plupart des distributions Linux. Aucun correctif n'est disponible pour le moment
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Inactif  

    Homme Profil pro
    Écrivain public, Économiste et Programmeur Free Pascal
    Inscrit en
    Août 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Écrivain public, Économiste et Programmeur Free Pascal
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 350
    Points : 948
    Points
    948
    Billets dans le blog
    40
    Par défaut
    La gestion de la mémoire a été écrite pour la première fois en C sur des ordinateurs 8 bits à mémoire de 640 ko, non utilisée à l'époque par le Pascal.

    Cette gestion permettait de jouer avec plus d'images.

Discussions similaires

  1. Réponses: 13
    Dernier message: 06/11/2017, 06h51
  2. pilote de port série pour le noyau Linux
    Par Nanoucha dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 14/09/2007, 05h04
  3. Réponses: 42
    Dernier message: 11/03/2007, 14h09
  4. Nouveau, présentation et question pour bien débuter
    Par chichicratsok dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 19/03/2006, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo