Wie viel Linux Speicher von einem Prozess verwendet wird?

March 20

Wie viel Linux Speicher von einem Prozess verwendet wird?

Bestimmen die Größe des Speichers, die von einem Prozess läuft auf einer Linux-Plattform verwendet, ist eine heikle Angelegenheit. Die Werte für die Speicherauslastung, die vom Betriebssystem gemeldet sind ungenau. Wenn Sie die integrierte Dienstprogramme zur Verfügung gestellt, mit Linux zu verwenden, ist es wichtig zu verstehen, der Speicher-Nutzungsstatistik und wie sie berechnet werden.

Wie funktioniert ein Prozess Speicher verwenden?

Wenn ein Prozess gestartet wird, ordnet das Betriebssystem die Größe des Speichers, die der Prozess zum Ausführen benötigt. Jeder Prozess besitzt vier Speichersegmente für ausführbaren Code und Daten. "Code"-Segment enthält die ausführbaren Anweisungen. Das Segment "Daten" enthält statische und globale Variablen. Die "Stack" enthält lokale Variablen. Der "Heap" enthält dynamisch zugewiesenen Objekte. Prozesse können gemeinsam genutzte Bibliotheken verwenden. Gemeinsam genutzte Bibliotheken sind nur einmal in den Speicher geladen, und alle Prozesse, die mit einer bestimmten Laufzeit-Bibliothek werden diese Kopie verwenden.

Welche Speicherstatistik meldet Linux?

Virtueller Speicher ist der Gesamtbetrag des Adressraums durch das Betriebssystem an den Prozess für Code, Daten und Stack reserviert. Die Größe des virtuellen Speichers berichtet von Linux enthält den Code, Daten und Stapelspeicher reserviert für Verwendung durch einen Prozess, der beide physischen Speicher und swap-Speicher. Dieser Wert schließt alle Bibliotheken, die vom Prozess verwendeten verwendeter Speicherplatz. Die Folge davon ist, dass Laufzeitbibliotheken voll auf die Größe eines bestimmten Prozesses, in angerechnet.

Die resident Speichergröße eines Prozesses berichtet von Linux umfasst nur die Größe des physischen Speichers, den der Prozess und die Laufzeit-Bibliotheken, auf die verwiesen zu einem bestimmten Zeitpunkt verwenden. Segmente zog nach Raum tauschen sind nicht enthalten. Wie mit der Größe des virtuellen Speichers, Arbeitsspeichergröße des Speicherplatzes, die gemeinsam genutzte Bibliotheken enthält.

Eine einfache Prozess-Momentaufnahme mit Ps anzeigen

Das Ps-Dienstprogramm bietet eine Momentaufnahme der Prozesse auf dem System, Berichterstattung, die virtuelle und resident Speichergröße, CPU- und Prozentsätze und eine Vielzahl anderer Informationen. Um einen einzelnen Prozess untersuchen, verwenden Sie die folgenden Optionen, um Ps, einschließlich Vsz für die Größe des virtuellen Speichers und Rss für die ansässigen Speichergröße. Zum Beispiel

PS p 3746 o pid, Rss, Vsz Comm

Ausgänge für Prozess 3746:

PID-RSS VSZ-BEFEHL3746 14444 351216 httpd2

Prozessüberwachung mit top

Wie viel Linux Speicher von einem Prozess verwendet wird?

Das obere Dienstprogramm bietet einen live-Blick auf die Systemleistung. Um eine oder mehrere bestimmte Prozesse mit Top zu überwachen, verwenden Sie die Option--p, um eine Liste von Prozess-IDs bereitzustellen. Zum Beispiel:

Top -p 3746,6100,28753,23176,25544

Nach dem Start oben, drücken Sie die Command-Taste "f" auf das Selektionsbild Spalte zugreifen. Schalten Sie die Anzeige für die PID, VIRT, RES, SHR, SWAP, CODE, Daten und Befehl Spalten. Wie im Screenshot dargestellt wird, zeigt das Display nun die folgenden Speicher-Statistiken:

VIRT: Größe des virtuellen SpeichersRES: Resident SpeichergrößeSHR: Shared-Memory-GrößeSWAP: Vertauschten GrößeCODE: Code-Größe im physikalischen SpeicherDaten: Daten plus die Stapelgröße im physikalischen Speicher

Spähen in/proc

Detaillierte Informationen zur Verwendung finden Sie in/proc / < pid > Status und Prozess-Speicher / Status und/proc / < pid > / Smaps. Eine Vielzahl von Informationen in/proc / < pid > enthalten ist / Status, einschließlich diese Memory-Statistik:

VmPeak: Maximale Größe des virtuellen SpeichersVmSize: virtueller SpeicherVmData: Daten SegmentgrößeVmStk: Stack-GrößeVmExe: Ausführbare SegmentgrößeVmLib: Bibliothek Codegröße

/ proc / < pid > / Smaps bietet eine sehr detaillierte Ansicht einer Prozessspeicher Verwendungen, aufgeschlüsselt nach Zuordnung für Code, Stapeln, Heap und jede freigegebene Bibliothek. Die vollständige Ausgabe des Smaps ist ziemlich langwierig und schwer zu verdauen. Können Sie das Linux:Smaps Perl-Modul zum Analysieren und verarbeiten die Smaps-Datei.