Outils pour utilisateurs

Outils du site


gestionmemoire

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:

  1. isolation des processus
  2. partage - le noyau peut permettre à 2 processus d'accéder à la même adresse mémoire physique via des adresses virtuelles différentes
  3. hardware abstraction
  4. 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:

  1. privée/anonyme
  2. privée/file-backed
  3. partagée/anonyme
  4. 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)