proc_pid_smaps(5) | File Formats Manual | proc_pid_smaps(5) |
BEZEICHNUNG
/proc/pid/smaps - XXX: Wofür steht das »s« in »smaps«?
BESCHREIBUNG
- /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.
SIEHE AUCH
Ü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 |