La mémoire vive sous Linux

Objectifs

  • Savoir obtenir l'utilisation de la RAM sur la machine

  • Comprendre la subtilité entre mémoire libre et disponible

AttentionUtilisation mémoire vive

La mémoire vive est essentielle au bon fonctionnement de l'ordinateur : si elle vient à manquer les différents programmes risquent de fortement ralentir (en attendant que de la mémoire se libère pour leur utilisation), voire même de cesser de fonctionner.

Méthode

La commande free permet de mesurer l'utilisation globale de mémoire vive sur la machine. Ou utilise l'option -h pour utiliser un affichage simple à lire pour un humain.

1
$ free -h
2
              total        used        free      shared  buff/cache   available
3
Mem:          7,7Gi       3,7Gi       2,3Gi       832Mi       1,7Gi       2,9Gi
4
Swap:         3,7Gi       0B          3,7Gi

L'information est donnée pour la mémoire RAM ainsi que pour le swap. On y trouve les 3 informations principales :

  • la quantité de mémoire sur la machine, ici 7,7 Gio pour la RAM et 3,7 Gio pour le swap

  • la quantité de mémoire utilisée actuellement, ici 3,7 Gio

  • la quantité de mémoire libre, ici donc 2,3 Gio

Cependant si l'on fait la soustraction entre la mémoire totale et la mémoire utilisée, on n'obtient pas ce qui est indiqué comme mémoire disponible. Pour cela il faut se pencher sur les 3 colonnes suivantes :

  • shared indique la part de mémoire qui est partagée entre plusieurs programmes, cela n'a pas beaucoup d'importance

  • buff/cache indique la quantité de mémoire utilisée par l'OS pour ses buffers et du cache

  • available indique une estimation de la mémoire qui est disponible si un programme en demande

ComplémentMémoire libre vs mémoire disponible

En réalité le système d'exploitation utilise une partie de la mémoire vive pour optimiser son fonctionnement et proposer une meilleure performance, en utilisant deux mécanismes.

Le premier est les buffers, qui permettent de stocker de l'information, pour une durée très courte, en attente de son traitement (par exemple un fichier qui vient d'arriver par le réseau et qui va être écrit sur le disque).

Le second est le cache, qui permet de garder en mémoire des informations que l'on pense réutiliser prochainement. Par exemple un fichier qui est souvent lu : pour accélérer la lecture, le système d'exploitation peut garder en cache, donc dans la RAM, une copie du fichier.

Les mécanismes de buffers ou de cache pourraient faire l'objet d'un cours entier, ce qu'il est important de retenir c'est que le système d'exploitation utilise une partie de la mémoire vive pour optimiser son fonctionnement. Et cette mémoire utilisée peut-être, en partie, libérée très rapidement car elle n'est pas essentielle au fonctionnement de l'ordinateur. C'est pour cela que l'on distingue la mémoire libre (celle qui est effectivement inutilisée) et la mémoire disponible (la mémoire libre + une partie des buffers et cache qui peuvent être libérés instantanément si besoin).

AttentionMultiples de l'octet

Lorsque l'on manipule des valeurs ayant pour unité des octets, on connaît généralement les multiples suivant :

  • kilooctet (ko) pour 1000 octets

  • mégaoctet (Mo) pour 1 million d'octets

  • gigaoctet(Go) pour un milliard d'octets

C'est ce que l'on appelle les préfixes du Système International d'unités, ce sont des puissances de 10.

Historiquement en informatique on manipule souvent des puissances de 2, en particulier lorsque l'on mesure des quantités de donnée. Pour cela on utilise les préfixes binaires :

  • kibioctet (Kio) pour 1024 octets

  • mébioctet (Mio) pour 220 octets (1 048 576)

  • gibioctet (Gio) pour 230 octets (1 073 741 824)

Il est donc important de ne pas mélanger les deux unités, car même si l'ordre de grandeur reste similaire, la différence devient significative pour les multiples élevées (giga, téra, péta, etc.)

À retenir

La mémoire vive est utilisée aussi bien par les programmes que par le système d'exploitation, pour stocker des données de fonctionnement mais aussi pour optimiser les performances du système. On peut obtenir rapidement un aperçu de l'utilisation qui est faites grâce à la commande free.