Comment interpréter la sortie de la commande "free -m"?

42

La sortie de free -m est:

                     total    used    free    shared  buffers  cached
Mem:                  595      482     112         0       63     324
-/+ buffers/cache:              93     501
swap:                   0        0       0

Quelle valeur de mémoire utilisée est correcte, 482 ou 93?

    
posée amoooc 30.11.2012 - 09:13
la source

4 réponses

32

Vous avez 112 Mo de mémoire complètement libre, MAIS les 501 Mo que vous voyez sont sans mémoire cache. Cela signifie que le système d'exploitation a mis certaines choses en mémoire pour être plus rapide. Il appelle cela "utilisé" (donc votre numéro "gratuit" est seulement de 112), mais il est effectivement disponible pour vous si vous en avez besoin.

C'est une bonne chose, car la mémoire inutilisée est une mémoire inutile. La mémoire mise en cache peut être effacée si nécessaire. L'ancien "j'ai besoin de nettoyer la mémoire" des choses que les gens faisaient pour Windows 95 n'est pas nécessaire ici: tout va bien et heureux:)

Le numéro que vous recherchez est 501 gratuit (en mégaoctets à cause de -m ).

voir pour référence ces pages:

lien
lien

    
réponse donnée Nanne 30.11.2012 - 09:50
la source
24

Sortie d'interprétation de free :
La première ligne des listes de sortie free :

  • total Votre mémoire physique totale (sans virtualisation)
  • used Combien de cette somme est actuellement utilisée (par quelque chose)
  • free De combien est totalement gratuit (pas utilisé du tout)
  • shared (jamais rien, ignore cette colonne)
  • buffers Mémoire utilisée par les tampons du noyau
  • cached Mémoire utilisée pour le cache

Les deux derniers éléments, le cache et les tampons, sont des mémoires qui ne sont pas allouées à des processus utilisateur spécifiques. C'est la mémoire réservée par le noyau pour améliorer les performances globales, mais ce n'est pas de la mémoire "applicative". Ces zones augmenteront ou diminueront en fonction des stratégies du noyau en ce qui concerne la mise en cache, la pression de la mémoire, les modèles d’E / S des applications, etc.

Étant donné que ces deux colonnes ne sont pas de la mémoire allouée par l’utilisateur et que les zones peuvent se réduire (pratiquement à zéro) si les affectations d’utilisateur l’exigent, elles sont en quelque sorte "libres". si vos applications en ont activement besoin.

C'est ce que la deuxième ligne vous dit. Il supprime le tampon et la mémoire cache de la colonne used (ce que signifie - ) et les ajoute ( + ) à la colonne free . (Le problème de l'arrondi se produira.)

(La dernière ligne indique l’état de votre espace de swap.)

Courtoisie: lien

Donc, dans votre cas, 112 Mo est la mémoire totalement libre, et si vous prenez en compte la mémoire utilisée pour la mise en cache, qui peut être allouée aux applications utilisateur, si nécessaire; puis 501 Mo correspond à la quantité maximale de mémoire disponible.

    
réponse donnée saji89 30.11.2012 - 10:26
la source
4
La commande

free affiche les informations sur la mémoire inutilisée et utilisée et l’espace de swap.

Voici l'explication fournie par lien

  

La première ligne, intitulée Mem , affiche l’utilisation de la mémoire physique,   y compris la quantité de mémoire allouée aux tampons et aux caches. UNE   tampon, également appelé mémoire tampon, est généralement défini comme une partie de   la mémoire qui est mise de côté en tant que lieu d'attente temporaire pour les données qui est   être envoyé à ou reçu d'un périphérique externe, tel qu'un disque dur,   clavier, imprimante ou réseau.

     

La deuxième ligne de données, qui commence par - / + buffers / cache , montre   la quantité de mémoire physique actuellement consacrée au tampon système   cache Ceci est particulièrement significatif en ce qui concerne l'application   programmes, comme toutes les données accessibles à partir de fichiers sur le système qui sont   effectuée par l'utilisation des appels système read () et write () 1   à travers ce cache. Ce cache peut grandement accélérer l'accès aux données en   réduire ou éliminer le besoin de lire ou d'écrire sur le disque dur ou   autre disque.

     

La troisième ligne, qui commence par Swap , affiche l’espace de swap total   ainsi que combien il est actuellement utilisé et combien est encore   disponible.

Permet d'analyser l'utilisation de la mémoire de votre système

Vous avez utilisé la commande free avec l'option "-m", qui permet d'afficher le résultat en mégaoctets

-m, --mega
              Display the amount of memory in megabytes.

La mémoire totale est de 595 (utilisé + libre)

Utilisé: 482 Gratuit: 112

482 Mo sur 595 Mo sont utilisés par votre système, dans lequel seuls 93 Mo sont utilisés par les programmes actifs et les 324 Mo restants sont en cache

Ainsi, lorsque vous exécutez un programme à l’avenir, dites-lui plus de 120 Mo. Tous les 112 Mo (actuellement gratuits) seront donnés et les 8 Mo restants seront pris dans le tampon / cache du programme non actif.

Modifier : trouvé cette lien , qui fournit de bonnes explications.

    
réponse donnée devav2 30.11.2012 - 10:35
la source
4

La réponse à @ saji89 est excellente, mais ces jours-ci free -m n'imprime plus la ligne -/+ buffers/cache , mais place la quantité de RAM disponible dans une nouvelle colonne available sur la première ligne, par exemple:

[email protected]_master:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:          61406        1571         506       17131       59328       42150
Swap:             0           0           0
[email protected]_master:~$ free -V
free from procps-ng 3.3.10

Vous pouvez lire le commit to free (1) qui a supprimé la ligne dans son dépôt . En outre, le commit pour ajouter la nouvelle colonne available .

    
réponse donnée Paul A Jungwirth 05.09.2017 - 20:02
la source

Lire d'autres questions sur les étiquettes