Linux et la mémoire virtuelle (swap et paged)

Contenu

Comprendre la mémoire virtuelle sous Linux

Chaque machine (serveur ou  non) dispose d’une quantité limité de mémoire vive. et lorsque trop de process tournent, la RAM peut se révéler insuffisante. L’astuce tès ancienne qui remonte au début de l’histoire des PC est d’utiliser le disque dur (une partie de disque dur) pour émuler la mémoire vive.

On pourrait aussi augmenter la mémoire vive, mais c’est cher. Le disque dur coûte beaucoup moins cher.

Donc on a la situation suivante : utiliser la mémoire du disque dur pour compléter la mémoire RAM.

Le problème avec le disque dur c’est qu’il est quasiment mille fois plus lent que la mémoire vive, mais ça c’est un autre débat.

 

Connaitre l’utilisation de la mémoire virtuelle sur Linux

Tout d’abord une commande très simple pour connaitre la mémoire de votre machine sous Linux :

$ free
[root@ns357817 ~]# free
             total       used       free     shared    buffers     cached
Mem:       2031712    1923280     108432        440      70156    1042944
-/+ buffers/cache:     810180    1221532
Swap:      1046520    1046520          0

Nous avons quelques colonnes nous donnant des informations très utiles, première colonne  la mémoire totale, la seconde la mémoire totale utilisée, la colonne « free » est la mémoire qui résulte de la différence des deux colonnes précédente.

La mémoire « shared » est la mémoire partagée par plusieurs processus en même

Différence entre swap et page memory

Bien que swap et page soient utilisés de façon interchangeable, pour les puristes, il y a paging de mémoire quand seulement une partie d’un process est écrit dans la mémoire virtuelle, il y a swapping de mémoire quand l’intégralité du process est écrit dans la mémoire virtuelle.

Quand les pages sont écrites sur le disque, on parle de page-out, quand les pages reviennent en mémoire vive on parle de page-in.

 

Fonctionnement de la mémoire virtuelle

Lorsqu’un programme démarre, elle passe du disque sur la émoire RAM, c’est le fonctionnement normal. Le page-in est normal donc, de même le page-out s’il se produit de temps en temps aussi est normal, par contre s’il y a beaucoup de page-out (écriture sur le disque), c’est peut-être un signe de trouble, le système va passer beaucoup de temps à écrire sur le disque, ça va ralentir le système, on appelle cela la thrashing. Le page-out n’est donc pas un problème en soi, c’est plutôt son activité intense qui est problématique.

Les outils pour connaitre l’activité de la mémoire virtuelle

Il y a un outil commun, vmstat, qui comme son nom l’indique produit des statistiques d’utilisation de mémoire virtuelle.

Retour en haut