GNU/Linux >> Tutoriels Linux >  >> Linux

Disséquer la commande gratuite :ce que l'administrateur système Linux doit savoir

free est une commande populaire utilisée par les administrateurs système sur les plates-formes Unix/Linux. C'est un outil puissant qui donne un aperçu de l'utilisation de la mémoire dans un format lisible par l'homme.

L'man la page de cette commande indique que free affiche la quantité totale de mémoire libre et utilisée sur le système, y compris l'espace physique et d'échange, ainsi que les tampons et les caches utilisés par le noyau. Les informations sont recueillies en parsant /proc/meminfo .

Comme toute autre commande, free a subi des révisions au fil du temps pour rendre ses résultats significatifs et précis pour la prise de décision. Dans Red Hat Enterprise Linux (RHEL) 6, la sortie est quelque peu différente de celle de RHEL 7 et 8. Cependant, dans toutes ces versions, certains paramètres clés ne changent pas.

Sur RHEL 6, en tapant free -h (J'ai utilisé le -h option pour le format lisible par l'homme) affiche une sortie semblable à la suivante :

[root@srv ~]# free -h
             total       used       free     shared    buffers     cached
Mem:           94G        44G        49G       161M       993M       1.3G
-/+ buffers/cache:        42G        52G
Swap:          15G         0B        15G

(schéma 1)

RHEL 7/8 affiche des informations similaires à celles ci-dessous :


[root@server1 ~]# free -h
               total        used        free      shared  buff/cache   available
Mem:            15G        751M        1.2G        272M         13G         14G
Swap:            0B          0B          0B

(schéma 2)

RHEL 8 aura une sortie similaire à celle ci-dessous :

[root@tiger ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          819Mi       164Mi       146Mi        25Mi       509Mi       491Mi
Swap:            0B          0B          0B
(Figure 3)


Pour rendre la sortie ci-dessus plus lisible, la commande propose plusieurs options :
free -b , -k , -m , -g  :affiche la quantité de mémoire en octets, kilo-octets, mégaoctets,  gigaoctets respectivement. Vous pouvez également utiliser free -h pour afficher la sortie dans une sortie lisible par l'homme. Veuillez exécuter free --help pour plus d'informations sur les options.

Les différentes colonnes, affichées par les différentes versions ci-dessus, cherchent à identifier la mémoire totale, utilisée, libre et partagée. Il cherche également à afficher la mémoire contenue dans le cache et les tampons.

Cependant, comme avec la plupart des commandes, les colonnes pertinentes à vérifier qui peuvent intéresser l'administrateur système lors de l'entretien ménager ou du dépannage d'un problème sont expliqués ci-dessous.

Red Hat Enterprise Linux 6

Dans le cas de RHEL 6, l'accent doit être mis sur les -/+ buffers/cache colonne.

Dans la figure 1 ci-dessus, le total est de 94 Go, 44 ​​Go utilisés et 49 Go gratuits. Ce système est assez chargé, mais la RAM utilisée semble élevée. Cela ne devrait pas causer beaucoup de soucis, mais l'administrateur doit regarder les -/+ tampons/cache colonne. Les -/+ tampons/cache affiche la mémoire utilisée comme 42 Go et la mémoire libre comme 52 Go. Cela signifie que la quantité réelle de RAM utilisée est de 42 Go et non de 44 Go. La valeur de 44 Go inclut également le cache. Un simple regard sur le utilisé valeur sans tenir compte du cache affecte votre interprétation des performances du système.

Les tampons et les colonnes mises en cache sont expliqués ci-dessous :

  • buffers :mémoire utilisée par les tampons du noyau
  • en cache :espace mémoire occupé par "Page Cache".

Les pages de cache ne sont rien d'autre que les données/fichiers qui sont copiés dans la RAM lorsque le noyau effectue des opérations de lecture/écriture sur un disque. La raison de garder ces pages en cache est pour les performances d'E/S. Ainsi, le noyau conserve ces fichiers dans la RAM et les libère chaque fois qu'ils ne sont pas nécessaires ou chaque fois qu'un espace mémoire est demandé par un nouveau processus/commande fourni lorsqu'il n'y a pas d'espace libre disponible dans la RAM.

Red Hat Enterprise Linux 7/8

Sur RHEL 7/8, l'accent doit être mis sur le disponible colonne. Dans RHEL 7/8, les -/+ buffers/cache a été enlevé et remplacé par le disponible colonne. Le tampon et cache ont été combinés en buff/cache et ont la même signification que celle expliquée ci-dessus. Le disponible la colonne estime la quantité de mémoire disponible pour démarrer de nouvelles applications sans échange.

Dans la figure 2 ci-dessus, la RAM totale installée est de 15 Go, utilisée est de 751 Mo et libre est de 1,2 Go. En utilisant le même raisonnement que nous avons fait avec RHEL 6, un simple regard sur le utilisé valeur pourrait conduire à une conclusion erronée. Le utilisé colonne doit également être comprise avec la colonne de cache à l'esprit. Il y a beaucoup de mise en cache avec le disponible valeur de 14 Go, ce qui est très élevé, presque égal à la RAM totale.

Quand l'administrateur système doit-il commencer à s'inquiéter ?

Un système sain avec plus qu'assez de mémoire affichera, après avoir fonctionné pendant un certain temps, le comportement attendu et inoffensif suivant :

  • la mémoire libre est proche de 0 ou très petite
  • la mémoire utilisée est proche du total
  • la mémoire disponible (ou les -/+ tampons/cache libres) est plus grande par rapport à la mémoire totale
  • la valeur d'échange utilisée ne change pas

Cependant, l'administrateur système doit s'inquiéter lorsqu'il existe des signes qui constituent une véritable situation de mémoire insuffisante. Voici quelques-uns de ces signes :

  • la mémoire disponible (ou -/+ tampons/cache libres) est proche de zéro ou est considérablement réduite
  • les valeurs d'échange utilisées commencent à augmenter ou à fluctuer car il n'y a pas de pages de mémoire libres à utiliser pour le système et il doit donc recourir à l'utilisation du disque d'échange
  • Il y a des messages OutOfMemory-killer dans les journaux lorsqu'ils sont vérifiés avec grep -i kill /var/log/messages* ou dmesg | grep oom-killer

Conclusion

Le free La commande est un utilitaire très utile qui peut en dire beaucoup à l'administrateur système sur ce qui se passe sur le serveur. Apprendre à reconnaître les différences entre les versions de free peut aider à une interprétation plus précise de la sortie.

[ Voulez-vous essayer Red Hat Enterprise Linux ? Télécharge le maintenant gratuitement. ]


Linux
  1. Ne faites jamais cela sur votre linux rm -rf * / une commande pour casser tout linux

  2. Quel est l'équivalent de la commande 'free' de Linux sur FreeBSD v8.1

  3. Quelle est l'unité de taille par défaut dans la commande Linux ls -l

  4. Qu'est-ce que la commande d'exportation est censée faire sous Linux ?

  5. Sous Linux, quelle est la différence entre les tampons et le cache signalés par la commande free ?

Commande gratuite sous Linux

25 commandes Linux de base qu'un débutant doit connaître

Qu'est-ce que le Shell sous Linux ?

Outils Sysadmin :11 façons d'utiliser la commande ls sous Linux

La commande timer sous Linux

Qu'est-ce que la commande kill sous Linux ?