GNU/Linux >> Tutoriels Linux >  >> Linux

Comment limiter l'utilisation de la mémoire des applications ?

Oui, VSZ est une mémoire virtuelle. En ce qui concerne RLIMIT_AS, où avez-vous trouvé le paragraphe cité ci-dessus ? Puisque setrlimit(2) est un appel système Linux, je ne vois pas comment il pourrait surveiller malloc(3), une fonction de bibliothèque. Au lieu de cela, il ne peut fonctionner qu'avec brk(2), sbrk(2) et mmap(2) -- c'est aussi ce que suggère sa page de manuel (vérifiée sur Scientific Linux). Cependant, la quantité totale de mémoire demandée via ces fonctions est mémoire virtuelle, donc RLIMIT_AS limite effectivement la mémoire virtuelle. (Ceci est, encore une fois, conforme à la page de manuel setrlimit(2).)

Malheureusement, vous ne pouvez pas limiter RSS sous Linux (ce serait ulimit -m ). Vous pouvez essayer ulimit -d (RLIMIT_DATA), mais cela n'inclura mmap(2) que depuis Linux 4.7, généralement utilisé pour les grosses allocations. Une autre possibilité serait de limiter la mémoire virtuelle, mais avec une si grande différence entre RSS et VSZ, cela pourrait être difficile.


De nombreux processus partagent une partie de sa mémoire avec d'autres processus, par ex. libc est utilisé par presque tous les processus mais n'est mappé qu'une seule fois en mémoire, mais il compte dans l'utilisation de la mémoire virtuelle de chaque processus. Limiter l'utilisation de la mémoire qui n'est utilisée que par un certain processus (principalement RSS) peut être fait à l'aide de cgroups. Voir les réponses à Comment limiter les ressources totales (mémoire) d'un processus et de ses enfants pour savoir comment procéder. Cela limitera la mémoire totale d'un processus et de ses enfants.


Linux
  1. Comment limiter l'utilisation du processeur d'un processus sous Linux

  2. Comment augmenter la limite de mémoire PHP

  3. Linux - Limiter l'utilisation de la mémoire pour un seul processus Linux ?

  4. Comment limiter l'utilisation du processeur sur un pool d'applications dans IIS

  5. Comment trouver l'utilisation de la mémoire utilisateur sous Linux

Comment vérifier l'utilisation de la mémoire sous Linux

Comment vérifier l'utilisation de la mémoire dans Debian 10

Comment trouver les principaux processus en cours d'exécution par utilisation de la mémoire

Comment interpréter l'utilisation de la mémoire Top/htop ?

Comment trier la commande supérieure en fonction de l'utilisation de la mémoire

Comment profiler l'utilisation de la mémoire ?