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.