utilisation réelle de la mémoire


15

si je comprends bien, dans la sortie suivante produite par free, 3535m est la mémoire libre réelle disponible pour les applications, seulement 413m est utilisé, est-ce correct? besoin d'éclaircissements sur la différence entre Mem et - / + buffers / cache row.

libre -m
             total des tampons partagés gratuits utilisés mis en cache
Mem: 3949 3854 95 0 9 3431
- / + tampons / cache: 413 3535
Échange: 2047 1322 725

Réponses:


16

Le Mem: totalchiffre est la quantité totale de RAM qui peut être utilisée par les applications. Il s'agit de la RAM totale installée sur le système, moins:

  • mémoire réservée par les périphériques matériels (souvent la mémoire vidéo si la carte graphique n'a pas sa propre RAM);
  • mémoire utilisée par le noyau lui-même.

Ce total comprend:

  • free: mémoire actuellement utilisée à toutes fins;
  • shared: un concept qui n'existe plus. Il est laissé dans la sortie pour une compatibilité descendante (il existe des scripts qui analysent la sortie free). (Sur les systèmes actuels, vous verrez généralement des valeurs différentes de zéro car elles sharedont été réutilisées pour afficher la mémoire qui est explicitement partagée via un mécanisme de mémoire partagée . Sur les anciens systèmes, elle comprenait des fichiers mappés par plusieurs processus et une mémoire partageable restée partagée après fork().)
  • buffers: mémoire qui est sauvegardée par des fichiers et qui peut être écrite sur le disque si nécessaire;
  • cache: mémoire qui est sauvegardée par des fichiers et qui peut être récupérée à tout moment (la différence avec buffersest que les tampons doivent être enregistrés sur le disque avant d'être réutilisés, tandis que le cache se compose de choses qui peuvent être rechargées à partir du disque);
  • used -buffers/cache: mémoire utilisée par les applications (et non paginée pour permuter).

À la rigueur, le système pourrait fonctionner sans tampons ni cache, réservant de la RAM aux applications et effectuant systématiquement des lectures et des écritures sur disque sans mise en cache. Les -/+ buffers/cachechiffres indiquent la quantité de RAM utilisée directement par les applications ( usedcolonne) et la quantité de RAM non utilisée par les applications ( freecolonne).

Bien que cela puisse varier considérablement, un système sain a généralement environ la moitié de sa RAM consacrée aux applications et la moitié consacrée aux tampons et au cache. À moins que vous exécutiez un serveur de fichiers dédié, votre système a plus de RAM qu'il n'en a besoin pour ce que vous faites actuellement. Si le free - buffers/cachechiffre était bas, cela indiquerait un système qui n'a pas assez de RAM (contrairement à une croyance répandue, avoir beaucoup de mémoire consacrée aux tampons et au cache est important pour les performances du système, et essayer de réserver plus de mémoire pour les applications serait ralentir 99,99% des systèmes).

La swapligne est simple, elle indique la quantité de swap utilisée (soit par les applications, soit pour le tmpfsstockage) et la quantité qui ne l'est pas.


1
"partagé: un concept qui n'existe plus." - on dirait qu'il a été réintroduit entre 2011 et 2016: unix.stackexchange.com/questions/307015/…
Marisha

3

Oui tu as raison. Les tampons et le cache sont utilisés par le système d'exploitation mais sont immédiatement disponibles pour les applications. Le système d'exploitation est prêt à invalider et à jeter une partie du cache afin de satisfaire la prochaine demande de mémoire.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.