Rechercher

38.3. Paramètres de la mémoire virtuelle

download PDF

Les paramètres de la mémoire virtuelle sont répertoriés dans le répertoire /proc/sys/vm.

Les paramètres de mémoire virtuelle disponibles sont les suivants :

vm.dirty_ratio
Est une valeur en pourcentage. Lorsque ce pourcentage de la mémoire totale du système est modifié, le système commence à écrire les modifications sur le disque avec l'opération pdflush. La valeur par défaut est 20 pour cent.
vm.dirty_background_ratio
Une valeur en pourcentage. Lorsque ce pourcentage de la mémoire totale du système est modifié, le système commence à écrire les modifications sur le disque en arrière-plan. La valeur par défaut est 10.
vm.overcommit_memory

Définit les conditions qui déterminent si une demande de mémoire importante est acceptée ou refusée. La valeur par défaut est 0.

Par défaut, le noyau vérifie si une demande d'allocation de mémoire virtuelle est compatible avec la quantité de mémoire disponible (swap total) et ne rejette que les demandes importantes. Dans le cas contraire, les allocations de mémoire virtuelle sont accordées, ce qui signifie qu'elles autorisent le surengagement de la mémoire.

Réglage de la valeur du paramètre overcommit_memory:

  • Lorsque ce paramètre est fixé à 1, le noyau n'effectue aucune gestion de surcharge de la mémoire. Cela augmente le risque de surcharge de la mémoire, mais améliore les performances pour les tâches nécessitant beaucoup de mémoire.
  • Lorsque ce paramètre est défini sur 2, le noyau refuse les demandes de mémoire égales ou supérieures à la somme de l'espace d'échange total disponible et du pourcentage de RAM physique spécifié dans overcommit_ratio. Cela réduit le risque de surutilisation de la mémoire, mais n'est recommandé que pour les systèmes dont l'espace d'échange est plus grand que la mémoire physique.
vm.overcommit_ratio
Spécifie le pourcentage de RAM physique pris en compte lorsque overcommit_memory est défini sur 2. La valeur par défaut est 50.
vm.max_map_count
Définit le nombre maximal de zones de la carte mémoire qu'un processus peut utiliser. La valeur par défaut est 65530. Augmentez cette valeur si votre application a besoin de plus de zones de carte mémoire.
vm.min_free_kbytes

Définit la taille du pool de pages libres réservées. Il est également responsable de la définition des seuils min_page, low_page, et high_page qui régissent le comportement des algorithmes de récupération de pages du noyau Linux. Il spécifie également le nombre minimum de kilo-octets à garder libres dans le système. Il calcule une valeur spécifique pour chaque zone de mémoire basse, qui se voit attribuer un nombre de pages libres réservées proportionnel à sa taille.

Réglage de la valeur du paramètre vm.min_free_kbytes:

  • L'augmentation de la valeur du paramètre réduit effectivement la mémoire utilisable de l'ensemble de travail de l'application. Par conséquent, vous ne devriez l'utiliser que pour les charges de travail pilotées par le noyau, où les tampons des pilotes doivent être alloués dans des contextes atomiques.
  • La diminution de la valeur du paramètre peut rendre le noyau incapable de répondre aux demandes du système, si la mémoire devient très sollicitée dans le système.

    Avertissement

    Les valeurs extrêmes peuvent nuire aux performances du système. En fixant la valeur de vm.min_free_kbytes à un niveau extrêmement bas, on empêche le système de récupérer la mémoire de manière efficace, ce qui peut entraîner des pannes du système et l'impossibilité de gérer les interruptions ou d'autres services du noyau. Cependant, une valeur trop élevée de vm.min_free_kbytes augmente considérablement l'activité de récupération du système, entraînant une latence d'allocation due à un faux état de récupération directe. Cela peut entraîner l'entrée immédiate du système dans un état de mémoire insuffisante.

    Le paramètre vm.min_free_kbytes définit également un filigrane de récupération de page, appelé min_pages. Ce filigrane est utilisé comme facteur pour déterminer les deux autres filigranes de mémoire, low_pages et high_pages, qui régissent les algorithmes de récupération des pages.

/proc/PID/oom_adj

Si un système manque de mémoire et que le paramètre panic_on_oom est fixé à 0, la fonction oom_killer tue les processus, en commençant par le processus qui a la valeur oom_score la plus élevée, jusqu'à ce que le système se rétablisse.

Le paramètre oom_adj détermine le oom_score d'un processus. Ce paramètre est défini pour chaque identifiant de processus. Une valeur de -17 désactive oom_killer pour ce processus. Les autres valeurs valables sont comprises entre -16 et 15.

Note

Les processus créés par un processus ajusté héritent de l'adresse oom_score de ce processus.

vm.swappiness

La valeur de permutation, comprise entre 0 et 200, détermine dans quelle mesure le système favorise la récupération de la mémoire dans le pool de mémoire anonyme ou dans le pool de mémoire du cache de pages.

Réglage de la valeur du paramètre swappiness:

  • Des valeurs plus élevées favorisent les charges de travail basées sur les fichiers tout en éliminant la mémoire anonyme de la RAM des processus les moins activement accédés. Ceci est utile pour les serveurs de fichiers ou les applications de streaming qui dépendent des données, des fichiers dans le stockage, pour résider dans la mémoire afin de réduire la latence d'E/S pour les demandes de service.
  • Des valeurs faibles favorisent les charges de travail basées sur le mappage anonyme tout en récupérant le cache de page (mémoire mappée sur fichier). Ce paramètre est utile pour les applications qui ne dépendent pas fortement des informations du système de fichiers et qui utilisent fortement la mémoire privée et allouée dynamiquement, telles que les applications mathématiques et de calcul, et quelques superviseurs de virtualisation matérielle comme QEMU.

    La valeur par défaut du paramètre vm.swappiness est 60.

    Avertissement

    En définissant vm.swappiness sur 0, on évite agressivement d'échanger la mémoire anonyme sur un disque, ce qui augmente le risque que les processus soient tués par la fonction oom_killer en cas de charge de travail intensive en termes de mémoire ou d'entrées/sorties.

Ressources supplémentaires

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.