Outils pour utilisateurs

Outils du site


gestionmemoire

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

gestionmemoire [2016/07/14 22:24] (Version actuelle)
Ligne 1: Ligne 1:
 +{{tag> internal memory performance linux }}
 +
 +===== Gestion de la mémoire sous linux =====
 +
 +==== Biblio / sources ====
 +https://​techtalk.intersec.com/​2013/​07/​memory-part-1-memory-types/​
 +
 +https://​techtalk.intersec.com/​2013/​07/​memory-part-2-understanding-process-memory/​ et notamment le résumé à la fin
 +
 +Les 4 rôles de la mémoire virtuelle:
 +  - isolation des processus
 +  - partage - le noyau peut permettre à 2 processus d'​accéder à la même adresse mémoire physique via des adresses virtuelles différentes
 +  - hardware abstraction
 +  - possibilité d'​adresser des ressources non mémoire (exemple un fichier avec mmap)
 +
 +La mémoire virtuelle est divisée en page de 4kb. Chaque page dispose de permissions. Segfault: quand on essaie de réaliser une opération interdite sur une page.
 +
 +Voir ce superbe schéma: https://​techtalk.intersec.com/​wp-content/​uploads/​2013/​07/​Memory-Types.png
 +
 +4 classes de mémoire:
 +  - privée/​anonyme
 +  - privée/​file-backed
 +  - partagée/​anonyme
 +  - partagée/​file-backed
 +
 +Du fait de ces classes, il est difficile de connaître la quantité de mémoire utilisée par un processus (the resident memory)
 +
 +Avec top on peut sélectionner les champs:
 +  * VIRT - quantité de mémoire totale reservée par le processus
 +  * SHR - mémoire pouvant être partagée avec d'​autres processus
 +  * RES - rss - mémoire que le noyau considère comme étant allouée au processus. directement lié à %MEM
 +  * CODE - code exécutable
 +  * DATA - données de programme (pile et stack) - aucun intérêt.
 +  * SWAP - colonne intéressante car permettant de déterminer précisemment si on a des pb de conso mémoire.
 +
 +la commande **pmap -x** donne la quantité de mémoire réellement occupé par un processus (colonne RSS)
 +
 +# vim: set filetype=dokuwiki:​
 +# vim: set filetype=dokuwiki:​
  
gestionmemoire.txt · Dernière modification: 2016/07/14 22:24 (modification externe)