GNU/Linux >> Tutoriels Linux >  >> Linux

Où va la mémoire restante de vm.overcommit_ratio ?

Que fera le système avec les 20 % restants ?

Le noyau utilisera la mémoire physique restante à ses propres fins (structures internes, tables, tampons, caches, peu importe). Le paramètre de surengagement de mémoire gère les réservations de mémoire virtuelle des applications utilisateur, le noyau n'utilise pas de mémoire virtuelle mais une mémoire physique.

Pourquoi ce paramètre est-il obligatoire en premier lieu ?

Le overcommit_ratio Le paramètre est un choix d'implémentation conçu pour empêcher les applications de réserver plus de mémoire virtuelle que ce qui sera raisonnablement disponible pour elles à l'avenir, c'est-à-dire lorsqu'elles accèdent réellement à la mémoire (ou du moins essaient de le faire).

Réglage overcommit_ratio à 50 % a été considérée comme une valeur par défaut raisonnable par les développeurs du noyau Linux. Il suppose que le noyau n'aura jamais besoin d'utiliser plus de 50 % de la RAM physique. Votre kilométrage peut varier, c'est pourquoi il s'agit d'un accordable.

Pourquoi je ne devrais pas toujours le régler à 100 % ?

Le régler sur 100 % (ou toute valeur "trop ​​élevée") ne désactive pas de manière fiable le surengagement car vous ne pouvez pas supposer que le noyau utilisera 0 % (ou trop peu) de RAM.

Cela n'empêchera pas les applications de planter car le noyau pourrait de toute façon préempter toute la mémoire physique qu'il demande.


Définir le ratio sur 100 % ne réservera aucun espace pour les pages sauvegardées sur fichier ou les allocations dans le noyau telles que le code du noyau, les tampons réseau, etc.

Les structures dans le noyau seront allouées malgré tout, provoquant un surengagement. Ils sont généralement limités individuellement (par exemple, il existe un paramètre pour les tampons réseau). Je ne pense pas qu'il y ait une limite globale de 50 %, bien qu'une limite globale soit quelque chose sur laquelle on a travaillé dans le but d'héberger des conteneurs.

Les pages sauvegardées sur fichier sont l'endroit où vous exécutez généralement le code de l'espace utilisateur, vous avez donc également besoin d'espace pour cela.


Linux
  1. Analyser le noyau Linux avec ftrace

  2. Linux - Qu'implique la disposition de la mémoire du noyau virtuel dans Dmesg ?

  3. Où est la fonction itoa sous Linux ?

  4. Où puis-je trouver la version d'une arborescence des sources du noyau Linux ?

  5. Comment vérifier HZ dans le terminal?

Quelle est l'interface pour les appels système ARM et où est-elle définie dans le noyau Linux ?

Segmentation de la mémoire Linux

Où est la commande gem dans RHEL6 ?

Comment puis-je réserver un bloc de mémoire à partir du noyau Linux ?

Où est le fork() sur la bombe fork :(){ :|:&};: ?

Quelle est l'utilité d'avoir une partie noyau dans l'espace de mémoire virtuelle des processus Linux ?