proc_pid_smaps(5) File Formats Manual proc_pid_smaps(5)

/proc/pid/smaps - XXX: Wofür steht das »s« in »smaps«?

/proc/PID/smaps (seit Linux 2.6.14)
Diese Datei zeigt den Speicherverbrauch für jedes der Prozess-Mappings. (Der Befehl pmap(1) zeigt ähnliche Informationen in einer Form, die leichter auswertbar sein könnte.) Für jedes der Mappings gibt es eine Reihe von Zeilen wie die folgende:

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

Die erste dieser Zeilen enthält die gleichen Informationen, wie sie für das Mapping in /proc/PID/maps angezeigt werden. Die übrigen Zeilen zeigen die Größe des Mappings, den aktuell im RAM befindlichen Anteil des Mappings, der Anteil des Prozesses an dem Mapping (»Pss«), die Anzahl unveränderter (clean) und geänderter (dirty) gemeinsam genutzter Seiten des Mappings und die Anzahl unveränderter und geänderter privater Seiten. »Referenced« gibt die Menge des derzeit als referenziert oder zugegriffen markierten Speichers an. »Anonymous« zeigt die Speichermenge, die zu keiner Datei gehört. »Swap« zeigt an, wieviel möchte-gerne-Anonym-Speicher auch verwandt wird, aber im Auslagerungsspeicher.
Die Zeile »KernelPageSize« (verfügbar seit Linux 2.6.29) ist die vom Kernel verwandte Seitengröße, um den virtuellen Speicherbereich zu hinterlegen. Dies passt in den meisten Fällen auf die Größe, die von der MMU verwandt wird. Allerdings tritt ein Gegenbeispiel auf PPC64-Kerneln auf, auf denen 64 kB als Basisseitengröße verwandt wird, aber auf älteren Prozessoren 4 kB für die MMU verwendet wird. Um zwischen den zwei Attributen zu unterscheiden, meldet die Zeile »MMUPageSize« (auch seit Linux 2.6.29 verfügbar) die von der MMU verwandte Seitengröße.
Das »Locked« zeigt an, ob das Mapping im Speicher gesperrt ist oder nicht.
Die Zeile »ProtectionKey« (verfügbar seit Linux 4.9, nur x86) enthält den Speicherschutzschlüssel (siehe pkeys(7)), der dem virtuellen Speicherbereich zugeordnet ist. Dieser Eintrag ist nur vorhanden, falls der Kernel mit der Konfigurationsoption CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS gebaut wurde (seit Linux 4.6).
Die Zeile »VmFlags« (verfügbar seit Linux 3.8) stellt die dem virtuellen Speicherbereich zugeordneten Kernelschalter dar, kodiert mittels der folgenden zwei-Buchstaben-Codes:
rd - lesbar
wr - schreibbar
ex - ausführbar
sh - gemeinsam
mr - darf gelesen werden
mw - darf geschrieben werden
me - darf ausgeführt werden
ms - darf gemeinsam verwandt werden
gd - Stapelsegment wächst nach unten
pf - reiner PFN-Bereich
dw - Schreiben auf die gemappte Datei deaktiviert
lo - Seiten sind im Speicher gesperrt
io - Speicher-gemappter E/A-Bereich
sr - Empfehlung zum sequentiellen Lesen bereitgestellt
rr - Empfehlung zum zufälligen Lesen bereitgestellt
dc - beim Fork nicht zu kopierender Bereich
de - Bereich beim Remapping nicht erweitern
ac - Bereich ist rechenschaftspflichtig
nr - Auslagerungsbereich ist für den Bereich nicht reserviert
ht - Bereich verwendet große tlb-Seiten
sf - synchrone Seitenausnahmebehandlungen durchführen (seit Linux 4.15)
nl - nichtlineares Mapping (entfernt in Linux 4.0)
ar - Architektur-spezifische Schalter
wf - beim Fork bereinigen (seit Linux 4.14)
dd - Bereich nicht in den Speicherauszug aufnehmen
sd - Soft-dirty-Schalter (seit Linux 3.13)
mm - gemischt-gemappter Bereich
hg - Empfehlungs-Schalter für große Seiten
nh - Kein-Empfehlungs-Schalter für große Seiten
mg - Empfehlungsschalter zum Zusammenführen
um - userfaultfd-Nachverfolgung fehlender Seiten (seit Linux 4.3)
uw - userfaultfd-Nachverfolgung wprotect-Seiten (seit Linux 4.3)
Die Datei /proc/PID/smaps ist nur vorhanden, wenn die Kernel-Konfigurationsoption CONFIG_PROC_PAGE_MONITOR aktiviert ist.

proc(5)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, Dr. Tobias Quathamer <toddy@debian.org>, Chris Leick <c.leick@vollbio.de>, Erik Pfannenstein <debianignatz@gmx.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

2. Mai 2024 Linux man-pages 6.9.1