Informations sur la mémoire vive
Contents
1 Aperçu de la gestion mémoire
1.1 Mise en évidence
Lorsqu'un système a fonctionné pendant un moment, les outils traditionnels comme 'top' rapportent souvent une quantité étonnamment faible de mémoire libre. Par exemple, après environ 3 heures, la machine sur laquelle j'écris ceci affiche moins de 60 Mo de mémoire libre, bien que je dispose de 512 Mo sur ce système. Mais où est donc passée toute cette mémoire ?
La plus grosse partie est utilisée par le cache disque, lequel occupe pour l'instant aux alentours de 290 Mo.
top affiche cette quantité sous la colonne "cached". La mémoire utilisée pour le cache est essentiellement libre, en ce sens qu'elle peut être récupérée rapidement si un programme en cours (ou qu'on vient de lancer) en a besoin.
1.2 Pourquoi ?
La raison pour laquelle Linux utilise autant de mémoire pour le cache disque est que la RAM non utilisée est tout simplement gaspillée. Conserver des données dans le cache signifie que si quelque-chose réclame à nouveau des données déjà utilisées, il y a de bonnes chances qu'elles seront toujours présentes dans le cache.
Récupérer l'information à partir du cache est environ 1.000 fois plus rapide que les lire depuis le disque dur.
Si l'information n'est pas dans le cache, il faudra de toutes façons lire le disque dur mais dans ce cas, il n'y a aucune perte de temps.
1.3 Estimation de la mémoire libre
Pour avoir une meilleure estimation de la quantité de mémoire réellement libre pour les applications, exécutez la commande :
# Estimation de la mémoire réellement libre : free -m
L'option -m signifie megabytes et la sortie devrait ressembler à quelque-chose comme ceci :
total used free shared buffers cached Mem: 503 451 52 0 14 293 -/+ buffers/cache: 143 360 Swap: 1027 0 1027
La ligne -/+ buffers/cache montre les quantités de mémoire libre et utilisée, vues par les applications.
De manière générale, tant que le swap est peu utilisé, l'utilisation de la mémoire n'a aucune incidence sur les performances.
Remarquez que j'ai 512 Mo dans ma machine mais que la commande free n'en affiche que 503 de disponible. Cela résulte essentiellement du fait que le noyau ne peut pas être swapé et donc, que la mémoire qu'il occupe ne sera jamais disponible.
Il peut aussi y avoir quelques régions réservées pour/par le matériel à des fins diverses, selon l'architecture du système.