proc_pid_smaps(5) | File Formats Manual | proc_pid_smaps(5) |
NOM
/proc/pid/smaps - XXX : que représente le « s » dans « smaps » ?
DESCRIPTION
- /proc/pid/smaps (depuis Linux 2.6.14)
- Ce fichier affiche la mémoire utilisée par chacun des mappages du processus (la commande pmap(1) affiche des informations similaires dans une forme plus propice à une analyse). Pour chacun des mappages, il y a une série de lignes telles que les suivantes :
-
00400000-0048a000 r-xp 00000000 fd:03 960637 /bin/bash Size: 552 kB Rss: 460 kB Pss: 100 kB Shared_Clean: 452 kB Shared_Dirty: 0 kB Private_Clean: 8 kB Private_Dirty: 0 kB Referenced: 460 kB Anonymous: 0 kB AnonHugePages: 0 kB ShmemHugePages: 0 kB ShmemPmdMapped: 0 kB Swap: 0 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Locked: 0 kB ProtectionKey: 0 VmFlags: rd ex mr mw me dw
- La première de ces lignes montre les mêmes informations que celles affichées pour le mappage dans /proc/pid/maps. Les lignes suivantes montrent la taille du mappage, la quantité de mappage actuellement résidente en mémoire vive (« Rss »), le partage équitable (« proportional share ») de ce mappage pour le processus (« Pss »), le nombre de pages partagées propres ou sales du mappage et le nombre de pages privées propres ou sales du mappage. « Referenced » indique la quantité de mémoire actuellement marquée comme référencée ou accédée. « Anonymous » montre la quantité de mémoire qui n’appartient à aucun fichier. « Swap » montre la quantité de mémoire aussi utilisée qui serait anonyme, mais est en espace d’échange.
- L’entrée « KernelPageSize » (disponible depuis Linux 2.6.29) est la taille de page utilisée par le noyau pour sauvegarder une zone de mémoire virtuelle (VMA). Cela correspond à la taille utilisée par le MMU dans la majorité des cas. Cependant, un contre-exemple existe sur les noyaux PPC64 où un noyau utilisant 64 K comme taille de page de base pourrait encore utiliser 4 K pages pour le MMU sur les anciens processeurs. Pour différencier les deux attributs, la ligne « MMUPageSize » (disponible aussi depuis Linux 2.6.29) indique la taille de page utilisée par le MMU.
- La ligne « Locked » indique si le mappage est verrouillée en mémoire.
- La ligne « ProtectionKey » (disponible depuis Linux 4.9, sur x86 seulement) contient la clé de protection mémoire (consulter pkeys(7)) associée avec la zone de mémoire virtuelle. Cet enregistrement est présent seulement si le noyau a été construit avec l’option de configuration CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS (depuis Linux 4.6).
- La ligne « VmFlags » (disponible depuis Linux 3.8) représente les attributs du noyau, associés à la zone de mémoire virtuelle, encodés en utilisant les codes de deux lettres suivants :
-
rd - accessible en lecture wr - accessible en écriture ex - exécutable sh - partagé mr - peut lire mw - peut écrire me - peut exécuter ms - peut partager gd - segment de pile diminue pf - intervalle PFN pur dw - écriture désactivée sur le fichier projeté lo - pages verrouillées en mémoire io - zone E/S mappée en mémoire sr - avertissement de lecture séquentielle fourni rr - avertissement de lecture aléatoire fourni dc - ne pas copier la zone lors d’un fourchage de - ne pas étendre la zone lors d’un remappage ac - zone pouvant répondre (accountable) nr - espace d’échange non réservé pour la zone ht - zone utilisant des pages tlb volumineuses sf - accès synchrone aux « page faults » (depuis Linux 4.15) nl - mappage non linéaire (retiré dans Linux 4.0) ar - drapeau spécifique à l'architecture wf - effacement lors d’un fourchage (depuis Linux 4.14) dd - ne pas inclure la zone lors d’un vidage mémoire sd - drapeau soft-dirty (depuis Linux 3.13) mm - zone de mappage mixte hg - drapeau d’avertissement de page volumineuse nh - drapeau d’avertissement de page non volumineuse mg - drapeau d’avertissement de fusionnable um - suivi d’userfaultfd de pages manquantes (depuis Linux 4.3) uw - suivi d’userfaultfd de pages wprotect (depuis Linux 4.3)
- Le fichier /proc/pid/smaps n'est présent que si l'option de configuration du noyau CONFIG_PROC_PAGE_MONITOR a été utilisée.
VOIR AUSSI
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess https://www.blaess.fr/christophe/, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr> et Lucien Gentis <lucien.gentis@waika9.com>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.
2 mai 2024 | Pages du manuel de Linux 6.9.1 |