Provided by: manpages-fr_4.27.0-1_all bug

NOM

       /proc/sys/vm/ - Sous-sytème de mémoire virtuelle

DESCRIPTION

       /proc/sys/vm/
              Ce  répertoire  contient  des  fichiers de paramétrage de la gestion de mémoire, des tampons et du
              cache.

       /proc/sys/vm/admin_reserve_kbytes (depuis Linux 3.10)
              Ce fichier définit le montant de mémoire libre (en Kio) qui doit être réservée sur le système pour
              les utilisateurs ayant la capacité CAP_SYS_ADMIN.

              La valeur par défaut dans ce fichier est le minimum de [3 % de pages libres,  8  Mio]  exprimé  en
              Kio.  La  valeur par défaut est destinée à en fournir assez pour que le superutilisateur puisse se
              connecter et tuer un processus si  nécessaire,  en  utilisant  le  mode  «  guess  »  d’allocation
              excessive de mémoire (overcommit – c’est-à-dire 0 dans /proc/sys/vm/overcommit_memory).

              Les   systèmes   qui  s'exécutent  dans  le  mode  «  overcommit  never  »  (c’est-à-dire  2  dans
              /proc/sys/vm/overcommit_memory) doivent augmenter la valeur dans ce fichier pour prendre en compte
              la taille totale de mémoire virtuelle pour les programmes utilisés pour  récupérer  (par  exemple,
              login(1),  ssh(1)  et  top(1)).  Sinon  le  superutilisateur  pourrait  ne  pas être capable de se
              connecter pour récupérer le système. Par exemple, pour x86-64 une  valeur  acceptable  est  131072
              (128 Mio réservés).

              Le  changement  de  la  valeur  dans  ce fichier prend effet dès qu’une application requiert de la
              mémoire.

       /proc/sys/vm/compact_memory (depuis Linux 2.6.35)
              Lorsque 1 est inscrit dans ce fichier, toutes les zones sont compactées de façon à ce que toute la
              mémoire libre soit constituée de blocs contigus si possible. L’effet de cette action  est  visible
              en examinant /proc/buddyinfo.

              Ce fichier n’est présent que si le noyau est configuré avec l'option CONFIG_COMPACTION.

       /proc/sys/vm/drop_caches (depuis Linux 2.6.16)
              Écrire  dans  ce  fichier  force  le  noyau  à libérer les caches, entrées de répertoire et inœuds
              propres de la mémoire, en libérant ainsi cette mémoire. Ce peut  être  utile  pour  les  tests  de
              gestion  de  mémoire  et  la  réalisation  de  tests  reproductibles de performance de systèmes de
              fichiers. Puisqu’une écriture dans ce fichier fait perdre tous les avantages du cache,  cela  peut
              dégrader l’intégralité des performances du système.

              Pour libérer les pages de cache, utilisez :

                  echo 1 > /proc/sys/vm/drop_caches

              Pour libérer les entrées de répertoire et les inœuds, utilisez :

                  echo 2 > /proc/sys/vm/drop_caches

              Pour libérer les pages de cache, entrées de répertoire et inœuds, utilisez :

                  echo 3 > /proc/sys/vm/drop_caches

              Parce  que  l’écriture  dans  ce  fichier est non destructive, et que les objets sales ne sont pas
              libérables, l'utilisateur devrait utiliser la commande sync(8) au préalable.

       /proc/sys/vm/sysctl_hugetlb_shm_group (depuis Linux 2.6.7)
              Ce fichier éditable contient un ID de groupe autorisé à allouer de la  mémoire  en  utilisant  des
              pages  volumineuses.  Si un processus à un ID de groupe de système de fichiers ou tout autre ID de
              groupe supplémentaire qui correspond à cet ID de groupe, il peut réaliser des allocations de pages
              volumineuses  sans  détenir  la  capacité  CAP_IPC_LOCK.  Consulter  memfd_create(2),  mmap(2)  et
              shmget(2).

       /proc/sys/vm/legacy_va_layout (depuis Linux 2.6.9)
              S'il  est  différent  de zéro, cela désactive la nouvelle disposition de carte mémoire 32 bits. Le
              noyau utilisera alors la disposition patrimoniale (2.4) pour tous les processus.

       /proc/sys/vm/memory_failure_early_kill (depuis Linux 2.6.32)
              Contrôler comment tuer les processus lorsqu'une  erreur  mémoire  non  corrigée  (typiquement  une
              erreur  sur  2  bits  dans  un  module  de  mémoire), qui ne peut pas être gérée par le noyau, est
              détectée en tâche de fond par le matériel. Dans certains cas (par exemple s'il  existe  une  copie
              valable de la page sur disque), le noyau est capable de gérer cette erreur de manière transparente
              sans  qu'aucune application ne soit touchée. Mais si le noyau n'a pas de copie à jour des données,
              il va tuer des processus afin d'empêcher la propagation de la corruption des données.

              Ce fichier peut contenir l'une des valeurs suivantes :

              1      Tuer dès que la corruption est détectée tous les processus qui ont  une  projection  de  la
                     page  corrompue  et non rechargeable. Notez que cela n'est pas possible avec quelques types
                     de pages, comme les données allouées en interne par le noyau ou le cache d'échange  (swap),
                     mais cela fonctionne avec la majorité des pages utilisateur.

              0      Supprimer  la  projection  de  la  page  corrompue  dans tous les processus, et ne tuer les
                     processus que s'ils essaient d'y accéder.

              L'action de tuer le processus est effectuée en envoyant  un  signal  SIGBUS  avec  si_code  mis  à
              BUS_MCEERR_AO.  Les  processus  peuvent  gérer  cette  situation  s'ils  le souhaitent ; consulter
              sigaction(2) pour plus de précisions.

              Cette fonctionnalité n'est disponible que  sur  les  architectures/plateformes  avec  une  gestion
              avancée de vérification de la machine et dépend des possibilités du matériel.

              Les  applications  peuvent  modifier  individuellement le paramètre memory_failure_early_kill avec
              l'opération PR_MCE_KILL de prctl(2).

              Ce fichier n'est disponible que si le noyau est configuré avec l'option CONFIG_MEMORY_FAILURE.

       /proc/sys/vm/memory_failure_recovery (depuis Linux 2.6.32)
              Activer la récupération d’une erreur mémoire (si la plateforme le permet).

              1      Tenter une récupération.

              0      Toujours sortir en mode panique sur une erreur mémoire.

              Ce fichier n'est disponible que si le noyau est configuré avec l'option CONFIG_MEMORY_FAILURE.

       /proc/sys/vm/oom_dump_tasks (depuis Linux 2.6.25)
              Activer la production d'une image des tâches du système (à l'exception des threads du noyau)  lors
              des  mises  à  mort sur mémoire saturée (OOM-killing). L'image contient les informations suivantes
              pour chaque tâche (thread ou processus) : ID de thread, ID utilisateur réel, ID groupe de  threads
              (ID  du processus), taille de la mémoire virtuelle, taille de la mémoire résidente, CPU sur lequel
              la tâche était ordonnancée, valeur de oom_adj (voir la description de /proc/pid/oom_adj) et le nom
              de la commande. La production de cette image est utile pour trouver la raison de la  mise  à  mort
              sur mémoire saturée et pour identifier la tâche défectueuse qui en est la cause.

              Avec  la valeur zéro, l'information est supprimée. Sur les très gros systèmes avec des milliers de
              tâches, il peut être impossible de créer l'image avec les informations d’état de la  mémoire  pour
              chacune  d'entre  elles.  Ces systèmes ne doivent pas être obligés de pénaliser leurs performances
              dans ces cas de pénurie de mémoire si ces informations ne sont pas souhaitées.

              Pour toute valeur différente de zéro, ces informations  sont  présentées  à  chaque  fois  que  le
              système (OOM-killer) de mise à mort sur mémoire saturée tue réellement une tâche monopolisation la
              mémoire (memory-hogging).

              La valeur par défaut est 0.

       /proc/sys/vm/oom_kill_allocating_task (depuis Linux 2.6.24)
              Ce  fichier  active  ou  désactive la mise à mort de la tâche qui a créé le dépassement de mémoire
              dans les situations de mémoire saturée.

              Avec une valeur de zéro, l’OOM-killer parcourra la liste entière des tâches et celle à  tuer  sera
              sélectionnée   en   fonction  d'heuristiques.  Cette  valeur  sélectionne  normalement  une  tâche
              monopolisant une grosse quantité de mémoire et qui libérera beaucoup de mémoire  lorsqu'elle  sera
              tuée.

              Avec  une  valeur  différente  de  zéro,  l’OOM-killer  tuera  simplement  la  tâche provoquant le
              dépassement de mémoire. Cela évite un parcours potentiellement coûteux de la liste des tâches.

              Si /proc/sys/vm/panic_on_oom est différent de zéro, il est prioritaire sur toute  valeur  utilisée
              dans /proc/sys/vm/oom_kill_allocating_task.

              La valeur par défaut est 0.

       /proc/sys/vm/overcommit_kbytes (depuis Linux 3.14)
              Ce  fichier  éditable  fournit  une  alternative  à  /proc/sys/vm/overcommit_ratio  pour contrôler
              CommitLimit quand /proc/sys/vm/overcommit_memory a pour  valeur  2.  Il  permet  de  spécifier  la
              quantité  de  mémoire  réservée  en  plus  sous  forme  de  valeur  absolue  (en ko), plutôt qu’en
              pourcentage comme ce qui est fait pour overcommit_ratio. Cela  permet  un  contrôle  plus  fin  de
              CommitLimit sur les systèmes ayant des tailles de mémoire extrêmement importantes.

              Seul  un  des  deux  fichiers  overcommit_kbytes  ou  overcommit_ratio  peut  avoir  un  effet. Si
              overcommit_kbytes a une valeur différente de zéro, il est utilisé pour calculer CommitLimit, sinon
              c'est overcommit_ratio qui est utilisé. Écrire une valeur dans un de  ces  fichiers  fera  que  la
              valeur dans l’autre fichier sera définie à zéro.

       /proc/sys/vm/overcommit_memory
              Ce fichier contient le mode pour le comptage de la mémoire virtuelle du noyau. Les valeurs sont :

                     0 : gestion heuristique du dépassement d'allocation mémoire (c'est la valeur par défaut)
                     1 : pas de gestion du dépassement, ne jamais vérifier
                     2 : toujours vérifier, gestion stricte du dépassement

              Dans  le mode 0, les appels à mmap(2) utilisant MAP_NORESERVE ne sont pas vérifiés et le niveau de
              vérification par défaut est très faible, avec le risque d'avoir un processus tué à cause du manque
              de mémoire (« OOM-killed »).

              Dans le mode 1, le noyau prétend qu’il y a toujours assez de mémoire, jusqu’à ce  que  la  mémoire
              soit  réellement  épuisée.  Un  cas  d’utilisation de ce mode est celui des applications de calcul
              scientifique utilisant de grands tableaux creux. Avant Linux 2.6.0,  toute  valeur  différente  de
              zéro impliquait le mode 1.

              Dans  le  mode  2 (disponible depuis Linux 2.6), l’espace total d’adresses virtuelles pouvant être
              alloué (CommitLimit dans /proc/meminfo) est calculé ainsi :

                  CommitLimit = (total_RAM - total_huge_TLB) *
                             overcommit_ratio / 100 + total_swap

              où :

              -  total_RAM est la quantité totale de RAM sur le système ;

              -  total_huge_TLB est la quantité de mémoire réservée pour les pages volumineuses ;

              -  overcommit_ratio est la valeur dans /proc/sys/vm/overcommit_ratio ;

              -  total_swap est la quantité d’espace d’échange.

              Par exemple, sur un système ayant 16 Go de RAM physique et 16 Go d'espace d'échange, aucun  espace
              réservé  pour  les  pages volumineuses et avec un overcommit_ratio de 50, cette formule renvoie un
              CommitLimit de 24 Go.

              Depuis Linux 3.14, si la  valeur  dans  /proc/sys/vm/overcommit_kbytes  est  différente  de  zéro,
              CommitLimit est calculé ainsi :

                  CommitLimit = overcommit_koctets + total_swap

              Consulter      aussi      la     description     dans     /proc/sys/vm/admin_reserve_kbytes     et
              /proc/sys/vm/user_reserve_kbytes.

       /proc/sys/vm/overcommit_ratio (depuis Linux 2.6.0)
              Ce fichier éditable définit un pourcentage de dépassement de mémoire. La valeur par défaut dans ce
              fichier est 50. Consulter la description de /proc/sys/vm/overcommit_memory.

       /proc/sys/vm/panic_on_oom (depuis Linux 2.6.18)
              Ce fichier active ou désactive le déclenchement d'une  panique  dans  les  situations  de  mémoire
              saturée.

              Si  ce fichier est configuré à la valeur 0, l’OOM-killer du noyau tuera un processus perturbateur.
              En général, il peut tuer un processus perturbateur sans tuer le système.

              Si ce fichier est configuré à la valeur 1, le  noyau  paniquera  dans  une  situation  de  mémoire
              saturée.  Cependant,  si  un  processus  limite  les allocations à certains nœuds en utilisant des
              politiques de mémoire (MPOL_BIND de mbind(2)) ou des ensembles de processeurs (cpuset(7)),  et  si
              ces nœuds voient leur mémoire saturée, un processus peut être tué par l’OOM-killer. Aucune panique
              ne survient dans ce cas. Comme de la mémoire est disponible sur d'autres nœuds, le système n'a pas
              entièrement atteint une situation de mémoire saturée.

              Si ce fichier est configuré à la valeur 2, le noyau panique toujours dans une situation de mémoire
              saturée.

              La valeur par défaut est 0. Les valeurs 1 et 2 sont utilisées pour la récupération en cas d'erreur
              de  groupements.  Sélectionner  l'un ou l'autre en fonction de la politique de récupération en cas
              d'erreur.

       /proc/sys/vm/swappiness
              La valeur dans ce fichier contrôle le niveau d'agressivité utilisé par le noyau pour déplacer  des
              pages  mémoire  dans  l'espace  d'échange.  Les  valeurs  élevées  indiquent  une agressivité plus
              importante. La valeur par défaut est de 60.

       /proc/sys/vm/user_reserve_kbytes (depuis Linux 3.10)
              Ce fichier indique une quantité de mémoire (en Kio) à réserver pour les  processus  d’utilisateur.
              Cela  permet  d’empêcher un utilisateur de démarrer un seul processus monopolisateur de mémoire et
              qu’il ne puisse récupérer (tuer le monopolisateur). La valeur dans ce fichier a un effet seulement
              quand /proc/sys/vm/overcommit_memory est défini à 2 (mode « overcommit never »). Dans ce  cas,  le
              système  réserve  une  quantité de mémoire qui est le minimum de [3 % de la taille du processus en
              cours, user_reserve_kbytes].

              La valeur par défaut dans ce fichier est le minimum de [3 % des pages libres, 128 Mio] exprimé  en
              Kio.

              Si  la  valeur  dans  ce fichier est définie à zéro, l’utilisateur pourra allouer toute la mémoire
              libre pour un seul processus (moins la quantité réservée  par  /proc/sys/vm/admin_reserve_kbytes).
              Tout essai ultérieur d’exécuter une commande aboutira dans un « fork: Cannot allocate memory ».

              Le  changement  de  la  valeur  dans  ce fichier prend effet dès qu’une application requiert de la
              mémoire.

       /proc/sys/vm/unprivileged_userfaultfd (depuis Linux 5.2)
              Ce fichier (éditable) expose un drapeau  qui  contrôle  si  les  processus  non  privilégiés  sont
              autorisés  à  employer  userfaultfd(2). Si ce fichier a pour valeur 1, alors ils le peuvent, si la
              valeur  est  0,  seuls  les  processus  ayant  la   capacité   CAP_SYS_PTRACE   peuvent   utiliser
              userfaultfd(2). La valeur par défaut dans ce fichier est 1.

VOIR AUSSI

       proc(5), proc_sys(5)

TRADUCTION

       La   traduction   française   de   cette   page   de   manuel   a   été   créée   par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>,  François  Micaux,  Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,      Thomas      Huriaux      <thomas.huriaux@gmail.com>,     Nicolas     François
       <nicolas.francois@centraliens.net>,    Florentin    Duneau    <fduneau@gmail.com>,     Simon     Paillard
       <simon.paillard@resel.enst-bretagne.fr>,     Denis    Barbier    <barbier@debian.org>,    David    Prévot
       <david@tilapin.org>,   Jean-Paul   Guillonneau   <guillonneau.jeanpaul@free.fr>    et    Lucien    Gentis
       <lucien.gentis@waika9.com>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                     proc_sys_vm(5)