Richard Bruno
navigation
Home
admin









Gestion de la memoire
June 20th, 2017

Table des matières



- 4 types de mémoire
- Forcer la libération de la mémoire
- Utilisation de top
- Utilisation de free

4 types de mémoire



Mémoire Physique (Physical)

Elle correspond simplement à la RAM installée

Mémoire Tampon (Buffers)
Linux place dans celle-ci toutes les données en attente d’écriture sur le disque, les données lues sur un disque conservées pour améliorer les performances du système (résultat d’un ‘ls’, droits sur les fichiers, …), la position des blocs libres sur les disques, …
En bref, toutes les informations utiles pour augmenter les performances du système dans ses interactions avec les périphériques tel que les disques durs.

Mémoire Cache (Cached)

Les données conservées en cache n’ont rien à voir avec les problématiques liées à la lenteur des disques durs et ce sont majoritairement ces données qui remplissent la mémoire vive.

Mémoire Swap (Swap)

Elle correspond à l'espace provisionné sur les disques durs


Note : Mémoire Tampon et mémoire cache peuvent être libérées à tout moment

Source : http://www.randco.fr/blog/2012/gestion-de-la-ram-sous-linux/


Forcer la libération de la mémoire



Enfin, si malgré toutes ces explications vous vouliez quand même libérer votre mémoire, vous pouvez toujours le demander au système avec la commande :

$ sync; echo x > /proc/sys/vm/drop_caches




Le sync permet de s’assurer que toutes les informations en mémoire en attente d’écriture soient bien répercutées sur le disque.

Ensuite, remplacez le x par :

1 => Libère la mémoire des données en cache
2 => Libère la mémoire des données en tampon
3 => Libère la mémoire des données cache et tampon

Source : http://www.randco.fr/blog/2012/gestion-de-la-ram-sous-linux/


Utilisation de top



f : ajouter/supprimer des champs
F : choisir le champ utilisé pour le tri
o : modifier l'ordre des champs
x : surligner la colonne triée

http://forum.ubuntu-fr.org/viewtopic.php?id=306576
* virt c'est le total tel que vu par le processus
* res c'est le total vu par les barettes de ram
* swap c'est le total vu par le disque dur
* code c'est le total vu par le chargeur de code
* data c'est le total vu par l'allocateur mémoire dynamique
et VIRT = SWAP + RES
Attention : ici on ne parle pas du swap sur disque mais du swap en mémoire. Un programme demande X Go. Le système les réserve (VIRT) mais ne donne que Y Go réellement (RES). Les Z Go représentent le swap. Il s'agit d'un espace qui pourrait être demandé par le processus. On a X = Y + Z.

Utilisation de free



root@monitor2:~# free -mt
total used free shared buffers cached
Mem: 3968 3880 87 0 140 3179
-/+ buffers/cache: 560 3407
Swap: 382 0 382
Total: 4351 3880 470



La première ligne (Mem) indique la consommation de la mémoire physique, c'est à dire celle fournie par les barettes de mémoire :
La deuxième ligne (-/+ buffers/cach) indique la quantité de mémoire réellement consommée par les applications (560 Mo, colonne used) et la mémoire réellement disponible (3407 Mo, colonne free). Cette mémoire est utilisée pour (essentiellement) optimiser les performances du système. Cette mémoire peut être rendue disponible à tout moment.
En cessant d'utiliser les caches, le système ne consommerait donc plus que 560 Mo de mémoire et 3407 Mo seraient disponibles.

Source : http://a.michelizza.free.fr/pmwiki.php?n=Main.TutoAdminMemory

Note : avec vmstat on a le détail de la répartition entre mémoire cache et buffer :

root@monitor2:~# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 256 161632 143476 3255792 0 0 0 94 10 8 11 3 86 0




A noter, qu'on parle ici de mémoire du "user land". On ne parle pas de la mémoire réservée par le noyau ("kernel land").
Cette dernière peut s'observer avec la commande slabtop ou avec "vmstat -m".
On peut connaitre la quantité de kernel land utilisé en faisant l'opération suivante : mémoire physique - Somme de la mémoire utilisée par les processes.



Am I correct in thinking that the Slab memory is always physical RAM, and the number is already subtracted from the MemFree value?

Yes.

Sources :
- http://books.gigatux.nl/mirror/linuxperformanceguide/0131486829/ch03lev1sec2.html
- http://serverfault.com/questions/561350/unusually-high-dentry-cache-usage





Dernières modifs
Systemd (October 24th, 2020)
TP - rsyslogd (June 20th, 2017)
Gestion de la memoire (June 20th, 2017)
Ansible (November 10th, 2016)
Fichiers et systèmes de fichiers (November 8th, 2016)
X (October 20th, 2016)
Obtenir des informations sur le système (October 19th, 2016)

Contact
Pour m'envoyer un mail,
Pour me laisser un commentaire :
richard.brunooo
chez
gmail.com


powered by kure, modified by Bruno