Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Anzeige und Verwaltung des Linux-Speichers

Anzeige und Verwaltung des Linux-Speichers

巴扎黑
巴扎黑Original
2017-08-02 16:07:211673Durchsuche

Während der Systemwartung kann es erforderlich sein, jederzeit die CPU-Auslastung zu überprüfen und den Systemstatus anhand der entsprechenden Informationen zu analysieren. In CentOS können Sie den Befehl top verwenden, um die CPU-Auslastung anzuzeigen. Nach der Ausführung des Top-Befehls wird der CPU-Auslastungsstatus im Vollbildmodus und im Konversationsmodus angezeigt. Mithilfe von Top-basierten Befehlen können Sie den Anzeigemodus usw. steuern. Der Befehl zum Beenden von top lautet q (drücken Sie einmal die q-Taste, während top ausgeführt wird).

Der Befehl top ist ein häufig verwendetes Leistungsanalysetool unter Linux. Er kann die Ressourcennutzung jedes Prozesses im System in Echtzeit anzeigen. Er ähnelt dem Windows-Task-Manager Sie können den top-Befehl direkt verwenden, um den Inhalt von %MEM anzuzeigen. Sie können wählen, ob Sie die Prozessspeichernutzung des Oracle-Benutzers anzeigen möchten:

 $ top -u oracle


Erläuterung des Inhalts:

PID: ID des Prozesses
USER: Prozessbesitzer

PR: Prioritätsstufe des Prozesses, je kleiner die Priorität, desto höher die Priorität, die ausgeführt wird
NInice: Wert
VIRT: Vom Prozess belegter virtueller Speicher
RES: Vom Prozess belegter physischer Speicher
SHR: Vom Prozess genutzter gemeinsam genutzter Speicher
S: Status des Prozesses. S bedeutet Schlafen, R bedeutet Laufen, Z bedeutet Zombie-Zustand, N bedeutet, dass der Prioritätswert des Prozesses negativ ist
%CPU: Vom Prozess belegte CPU-Auslastung
%MEM: Der Prozentsatz des physischen Speichers und des gesamten verwendeten Speichers durch den Prozess
TIME+: Die gesamte CPU-Zeit, die der Prozess nach seinem Start belegt, dh der kumulierte Wert der CPU-Nutzungszeit.
BEFEHL: Name des Prozessstartbefehls

Operationsbeispiel:

Geben Sie „top“ in die Befehlszeile ein

, um oben zu starten

Der Vollbild-Dialogmodus von oben kann in drei Teile unterteilt werden: Systeminformationsleiste, Befehlseingabeleiste und Prozesslistenleiste.

Der erste Teil – die obere Systeminformationsleiste:

Die erste Zeile (oben):

„00:11:04“ ist die aktuelle Zeit des Systems;

 „3:35“ ist die Betriebszeit seit dem Systemstart.

  „2 Benutzer“ sind die aktuell am System angemeldeten Benutzer, genauer gesagt die Anzahl der angemeldeten Terminals an den Benutzer – Die gleichzeitigen Verbindungen desselben Benutzers zu mehreren Terminals des Systems werden als mehrere Benutzer betrachtet, die sich mit dem System verbinden, und die Anzahl der Benutzer wird hier auch als Anzahl der Terminals ausgedrückt

 „Lastdurchschnitt“ ist der aktuelle Durchschnittswert der Systemlast. Die nächsten drei Werte sind die durchschnittliche Anzahl der Prozesse vor 1 Minute, vor 5 Minuten und vor 15 Minuten Wenn die Anzahl der CPUs überschritten wird, fällt es der CPU schwer, die im aktuellen System enthaltenen Prozesse zu laden.

Die zweite Zeile (Aufgaben):

„59 insgesamt“ ist die Gesamtzahl von aktuelle Systemprozesse;

„1 läuft“ ist die Anzahl der aktuell laufenden Prozesse; „58 ruhende“ ist die Anzahl der derzeit im Wartezustand befindlichen Prozesse; 0 gestoppt“ ist die Anzahl der gestoppten Systemprozesse;

„0 Zombie“ ist die wiederhergestellte Prozessnummer;

Die dritte Zeile (Cpus):

Stellt jeweils den aktuellen dar Auslastung der CPU;

Die vierte Zeile (Mem):

Zeigt jeweils die Gesamtspeichermenge, die aktuelle Nutzung, den freien Speicher und die Speichermenge im Puffer an;

Die fünfte Zeile (Swap):

Die Darstellungskategorie ist dieselbe wie in der vierten Zeile (Mem), spiegelt jedoch die Verwendung der Swap-Partition (Swap) wider. Normalerweise wird die häufige Nutzung der Swap-Partition (Swap) als Ursache für unzureichenden physischen Speicher angesehen.

Der zweite Teil – die interne Eingabeaufforderungsleiste im mittleren Teil:

Wenn top ausgeführt wird, können Sie den Anzeigemodus des Prozesses über den internen Befehl von top steuern. Die internen Befehle lauten wie folgt:

s

– Ändern der Bildschirmaktualisierungsfrequenz

l – Deaktivieren oder aktivieren Sie die Anzeige der Top-Informationen in der ersten Zeile des ersten Teil

t – Deaktivieren oder aktivieren Sie die Anzeige der Aufgabeninformationen in der zweiten Zeile des ersten Teils und der CPU-Informationen in der dritten Zeile

m – Deaktivieren oder aktivieren Sie die Mem- und Vertauschen Sie die Informationen in der vierten Zeile des ersten Teils

N – Ordnen Sie die Prozessliste in der Reihenfolge der PID-Größe an (wird später im dritten Teil beschrieben)

P – Ordnen Sie die Prozessliste in der Reihenfolge an CPU-Auslastung (später im dritten Teil beschrieben)

M – Ordnen Sie die Prozessliste in der Reihenfolge der Speichernutzung an (später in Teil 3 beschrieben)

h – Hilfe anzeigen

n – Legen Sie die Anzahl der in der Prozessliste angezeigten Prozesse fest

q – Beenden Sie oben

s –

Ändern Sie den Bildschirmaktualisierungszyklus

Teil 3 – Die Prozesslistenleiste unten:

Unterscheidet nach PID Die Prozessliste wird regelmäßig entsprechend der eingestellten Bildschirmaktualisierungszeit aktualisiert. Die Anzeigemethode kann hier über den oberen internen Befehl

pmap

gesteuert werden. Sie können den von prozessbezogenen Informationen belegten Speicher entsprechend dem Prozess (der Prozessnummer) anzeigen kann über ps angezeigt werden) Wie unten gezeigt:

 $ pmap -d 5647

ps

Wie im folgenden Beispiel gezeigt:
$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' Wobei rsz der tatsächliche Speicher ist
$ ps - e - o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' |. sort -nrk

  Wobei rsz der tatsächliche Speicher ist, implementiert das obige Beispiel die Sortierung nach Speicher, von groß nach klein

Um den Speicher unter Linux zu überprüfen, verwenden wir normalerweise den kostenlosen Befehl:
[root@scs-2 tmp]# free
gesamte zwischengespeicherte Puffer
Mem: 3266180 325 0004 16176 0 110652 2668236
-/+ Puffer/Cache: 471116 2795064
Swap: 2048276 80160 1968116

Das Folgende ist eine Erklärung dieser Werte:
total: total physische Speichergröße .
gebraucht: Wie groß wurde verwendet.
kostenlos: Wie viele sind verfügbar.
Geteilt: Die Gesamtmenge an Speicher, die von mehreren Prozessen gemeinsam genutzt wird.
Puffer/zwischengespeichert: Die Größe des Festplattencaches.
Die dritte Zeile (-/+ Puffer/zwischengespeichert):
verwendet: Wie viel wurde verwendet.
kostenlos: Wie viele sind verfügbar.
Die vierte Zeile bedarf keiner großen Erklärung.
Differenz: Die Differenz zwischen verwendet/frei in der zweiten Zeile (mem) und verwendet/frei in der dritten Zeile (-/+ Puffer/Cache). Der Unterschied zwischen den beiden liegt in der Nutzungsperspektive. Da für das Betriebssystem alle Puffer/Cache verwendet werden, beträgt der verfügbare Speicher 3250004 KB +Puffer+cached, die vom Kernel (OS) unter Verwendung von +Application (X, Oracle usw.) verwendet werden.
Die dritte Zeile bezieht sich auf die Anwendungssicht, buffers/cached Es ist gleich verfügbar, weil Puffer/zwischengespeichert dient dazu, die Leistung beim Lesen von Dateien zu verbessern. Wenn die Anwendung Speicher verwenden muss, wird der Puffer/zwischengespeichert schnell wiederverwendet.
Aus Sicht der Anwendung ist verfügbarer Speicher = freier Systemspeicher + Puffer + zwischengespeichert.
Wie im obigen Beispiel:
2795064=16176+110652+2668236

Erklären Sie als Nächstes, wann und auf welche Weise der Speicher ausgetauscht wird. Wenn der verfügbare Speicher unter dem Nennwert liegt, findet ein Austausch statt.
So sehen Sie die Bewertung:
cat /proc/meminfo

[root@scs-2 tmp]# cat /proc/meminfo
MemTotal: 3266180 kB
MemFree: 17456 kB
Puffer: 111328 kB
Gespeichert: 2664024 kB
Austauschgespeichert: 0 kB
Aktiv: 467236 kB
Inaktiv: 26449 28 kB
HighTotal:       0 kB
HighFree        0 KB 360 kB
Slab: 112344 kB
Committed_AS: 535292 kB
PageTables: 2340 kB
VmallocTotal: 536870911 kB
VmallocUsed: 272696 kB
VmallocChunk: 536598 175 kB
HugePages_Total: 0
HugePages_Free : 0
Hugepagesize: 2048 kB

Mit free -m angezeigte Ergebnisse:
[root@scs-2 tmp]# free -m
Gesamtanzahl der zwischengespeicherten freien freigegebenen Puffer
Mem: 3189 3173 16 0 107 2605
-/+ Puffer/Cache: 460 2729
Swap: 2000 78 1921


Größe der /proc/kcore-Datei (Speicherbild) anzeigen:
[root@scs-2 tmp]# ll -h /proc/kcore
-r------ - 1 Root Root 4.1G 12. Juni 12:04 /proc/kcore

Hinweis:

Messung des belegten Speichers

Messung, wie viel Speicher ein Prozess belegt, Linux macht das Für uns stellt das Verzeichnis /proc eine sehr praktische Methode dar. Tatsächlich nutzen Tools wie top dies auch, um entsprechende Informationen zu erhalten.

/proc/meminfo Informationen zur Speichernutzung der Maschine

/proc/pid/maps pid ist die Prozessnummer und zeigt die vom aktuellen Prozess belegte virtuelle Adresse an.

/proc/pid/statm Vom Prozess belegter Speicher

[root@localhost ~]# cat /proc/self/statm

654 57 44 0 0 334 0

Erklärung der Ausgabe

CPU und CPU0. . . Die Bedeutung jedes Parameters in jeder Zeile (am Beispiel der ersten Zeile) ist:

Parametererklärung/proc//status

Größe (Seiten) Die Größe des virtuellen Adressraums der Aufgabe VmSize/4

Resident(pages) Die Größe des physischen Speichers, der von der Anwendung verwendet wird. VmRSS/4

Shared(pages) Die Anzahl der freigegebenen Seiten 0

Trs (Seiten) Der verfügbare Speicher, der dem Programm gehört. Die Größe des virtuellen Ausführungsspeichers VmExe/4

Lrs(Seiten) Die Größe der Bibliothek, die dem virtuellen Speicherraum der Aufgabe VmLib/4

Drs(pages) Das Programmdatensegment und der Benutzermodus Die Größe des Stapels (VmData+ VmStk) 4

dt(pages) 04

Zeigen Sie den verfügbaren Speicher der Maschine an

/proc/28248/>free

insgesamt verwendete freie gemeinsam genutzte Puffer im Cache

Speicher: 1023788 926400 97388 0 134668 503688

-/+ Puffer /cache: 288044 735744

Swap: 1959920 8960 8 1870312

Wenn wir den freien Speicher der Maschine mit dem Befehl free überprüfen, werden wir feststellen, dass der Wert von free sehr gering ist. Dies liegt hauptsächlich daran, dass in Linux der Gedanke herrscht, dass Speicher nicht umsonst verwendet wird, sodass einige Daten so weit wie möglich zwischengespeichert und gepuffert werden, um die nächste Verwendung zu erleichtern. Tatsächlich sind diese Erinnerungen jedoch sofort nutzbar.

Also freier Speicher = frei + Puffer + zwischengespeichert = insgesamt verwendet

Der Befehl top ist ein unter Linux häufig verwendetes Leistungsanalysetool, mit dem die Ressourcennutzung jedes Prozesses im System angezeigt werden kann in Echtzeit, ähnlich dem Windows Task-Manager. Im Folgenden wird die Verwendung im Detail beschrieben.

oben – 02:53:32 16 Tage aktiv, 6:34, 17 Benutzer, Lastdurchschnitt: 0,24, 0,21, 0,24

Aufgaben: 481 insgesamt, 3 laufend, 474 schlafend, 0 gestoppt, 4 Zombie
CPU(s): 10,3 %us, 1,8 %sy, 0,0 %ni, 86,6 %id, 0,5 %wa, 0,2 %hi, 0,6 %si, 0,0 %st
Speicher: 4042764k insgesamt, 4001096k verwendet , 41668k frei, 383536k Puffer
Swap: 2104472k insgesamt, 7900k genutzt, 2096572k frei, 1557040k zwischengespeichert

PID USER PR NI VIRT RES SHR S %C PU %MEM TIME+ COMMAND

32497 jacky. 20 0 669m 222m 31m R 10 5.6 29:27.62 Firefox
4788 yiuwing 20 0 257m 18m 13m S 5 0.5 5:42.44 konsole
5657 Liu xiaof 20 0 585m 159m 30m S. 4 4.0 5:25.06 Firefox
4455 xiefc 20 0 542m 124m 30m R 4 3.1 7:23.03 Firefox
6188 Liuxiaof 20 0 191m 17m 13m S 4 0.5 0:01.16 konsole

Die ersten fünf Zeilen des statistischen Informationsbereichs sind die allgemeinen statistischen Informationen des Systems. Die erste Zeile enthält Informationen zur Aufgabenwarteschlange, die mit dem Ausführungsergebnis des Uptime-Befehls identisch sind. Der Inhalt ist wie folgt:

01:06:48 Aktuelle Uhrzeit

bis 1:22 Systemlaufzeit im Format Stunden:Minuten
1 Benutzer Aktuelle Anzahl der angemeldeten Benutzer
Lastdurchschnitt: 0,06, 0,60, 0,48 Systemlast, also die durchschnittliche Länge der Aufgabenwarteschlange.
Die drei Werte sind die Durchschnittswerte von vor 1 Minute, 5 Minuten und 15 Minuten bis heute.

Die zweite und dritte Zeile sind Prozess- und CPU-Informationen. Bei mehreren CPUs können diese mehr als zwei Leitungen beanspruchen. Der Inhalt ist wie folgt:

Aufgaben: 29 Gesamtzahl der Prozesse

1 laufende Anzahl laufender Prozesse
28 schlafende Anzahl schlafender Prozesse
0 gestoppte Anzahl gestoppter Prozesse
0 Zombie-Zombie-Prozess Anzahl
Cpu(s): 0,3 % us Prozentsatz der CPU, der durch Benutzerspeicher belegt ist
1,0 % sy Prozentsatz der CPU, der durch Kernel-Speicherplatz belegt ist
0,0 % ni Prozentsatz der CPU, der durch Prozesse mit Änderungen belegt ist Prioritäten im Benutzerprozessraum
98,7 % id-Leerlauf-CPU-Prozentsatz
0,0 % wa Prozentsatz der CPU-Zeit, die auf Ein- und Ausgabe wartet
0,0 % hoch
0,0 % si


Die letzten beiden Zeilen sind Speicherinformationen. Der Inhalt ist wie folgt:

Mem: 191272k gesamt Gesamter physischer Speicher
173656k verwendet Gesamter physischer Speicher
17616k freier Gesamter freier Speicher
22052k Puffer Die Menge an Speicher, die als Kernel-Cache verwendet wird
Swap: 192772k insgesamt Gesamtmenge des Swap-Bereichs
0k verwendet Gesamtmenge des verwendeten Swap-Bereichs
192772k frei Gesamtmenge des freien Swap-Bereichs
123988k zwischengespeichert Gesamtmenge des gepufferten Swap-Bereichs.
Der Inhalt im Speicher wird in den Auslagerungsbereich ausgelagert und dann in den Speicher ausgelagert, aber der verwendete Auslagerungsbereich wurde nicht überschrieben.
Dieser Wert ist der Auslagerungsbereich, in dem diese Inhalte bereits im Speicher vorhanden sind. Größe.
Es ist nicht erforderlich, in den Swap-Bereich zu schreiben, wenn der entsprechende Speicher erneut ausgelagert wird.


Die detaillierten Informationen zu jedem Prozess werden unterhalb des statistischen Informationsbereichs des Prozessinformationsbereichs angezeigt. Lassen Sie uns zunächst die Bedeutung jeder Spalte verstehen.

Bedeutung des Spaltennamens der Seriennummer
a PID-Prozess-ID
b PPID-ID des übergeordneten Prozesses
c RUSER Echter Benutzername
d UID-Benutzer-ID des Prozesseigentümers
e BENUTZER Prozess Benutzername des Eigentümers
f GROUP Gruppenname des Eigentümers des Prozesses
g TTY Der Name des Terminals, das den Prozess gestartet hat. Prozesse, die nicht vom Terminal aus gestartet werden, werden als ?
h PR-Priorität
i NI schöner Wert angezeigt. Negative Werte zeigen hohe Priorität an, positive Werte zeigen niedrige Priorität an
j P Die zuletzt verwendete CPU, nur in einer Umgebung mit mehreren CPUs von Bedeutung
k %CPU Der Prozentsatz der seit der letzten Aktualisierung belegten CPU-Zeit
l TIME Gesamte CPU-Zeit, die vom Prozess verwendet wird, Einheit Sekunden
m TIME+ Gesamte CPU-Zeit, die vom Prozess verwendet wird, Einheit 1/100 Sekunde
n %MEM Prozentsatz des vom Prozess verwendeten physischen Speichers
o VIRT Virtueller Speicher, der vom Prozess verwendet wird. Gesamtmenge, Einheit KB. VIRT=SWAP+RES
p SWAP Die Größe des virtuellen Speichers, der vom auszulagernden Prozess verwendet wird, in KB.
q RES Die Größe des vom Prozess verwendeten physischen Speichers, der nicht ausgelagert wurde, in KB. RES=CODE+DATA
r CODE Die Größe des physischen Speichers, der vom ausführbaren Code belegt wird, in KB
s DATA Die Größe des physischen Speichers, der von anderen Teilen als dem ausführbaren Code belegt wird (Datensegment + Stapel) , in KB
t SHR Größe des gemeinsam genutzten Speichers, Einheit KB
u nFLT Anzahl der Seitenfehler
v nDRT Die Anzahl der Seiten, die seit dem letzten Schreibvorgang geändert wurden.
w S Prozessstatus.
D = Ununterbrochener Ruhezustand
R = Ausführen
S = Ruhezustand
T = Verfolgen/Stoppen
Z = Zombie-Prozess
x COMMAND Befehlsname/Befehlszeile
y WCHAN Wenn der Prozess schläft, wird der Name der Systemfunktion im Ruhezustand angezeigt
z Flags Task-Flag, siehe sched.h


Standardmäßig werden nur die wichtigeren PID, USER, PR angezeigt , NI, VIRT, RES, SHR, S, %CPU, %MEM, TIME+, COMMAND Spalten. Der angezeigte Inhalt kann mit den folgenden Tastenkombinationen geändert werden.
Ändern Sie den angezeigten Inhalt. Verwenden Sie die f-Taste, um den angezeigten Inhalt auszuwählen. Nach dem Drücken der f-Taste wird eine Liste der Spalten angezeigt. Drücken Sie a-z, um die entsprechenden Spalten anzuzeigen oder auszublenden. Drücken Sie abschließend die Eingabetaste, um zu bestätigen.
Drücken Sie die Taste o, um die Anzeigereihenfolge der Spalten zu ändern. Durch Drücken der Kleinbuchstaben a–z wird die entsprechende Spalte nach rechts verschoben, während durch Drücken der Großbuchstaben A–Z die entsprechende Spalte nach links verschoben wird. Zum Abschluss drücken Sie zur Bestätigung die Eingabetaste.
Drücken Sie die Großtaste F oder O und dann a-z, um Prozesse nach der entsprechenden Spalte zu sortieren. Die Großbuchstabe R kehrt die aktuelle Sortierung um.

================================

top-Befehl Während der Verwendung können Sie auch einige interaktive Befehle verwenden, um die Funktionen anderer Parameter zu vervollständigen. Diese Befehle werden über Tastenkombinationen gestartet.
: Sofort aktualisieren.
P: Sortieren nach CPU-Auslastung.
T: Sortieren nach Zeit und kumulierter Zeit.
q: Beenden Sie den oberen Befehl.
m: Anzeige der Speicherinformationen umschalten.
t: Zur Anzeige von Prozess- und CPU-Statusinformationen wechseln.
c: Anzeige des Befehlsnamens und der vollständigen Befehlszeile umschalten.
M: Sortieren Sie nach der verwendeten Speichergröße.
W: Schreiben Sie die aktuellen Einstellungen in die Datei ~/.toprc. Dies ist die empfohlene Methode zum Schreiben von Top-Konfigurationsdateien.

Wie Sie sehen, ist der Befehl top ein sehr leistungsfähiges Tool zur Überwachung des Systems, was besonders für Systemadministratoren wichtig ist. Der Nachteil besteht jedoch darin, dass es viele Systemressourcen verbraucht.

Anwendungsbeispiel
Verwenden Sie den Befehl top, um bestimmte Benutzer zu überwachen. Standardmäßig werden die Prozesse aller Benutzer überwacht. Wenn Sie den Status eines bestimmten Benutzers überprüfen möchten, drücken Sie im Terminal die Taste „U“ und geben Sie den Benutzernamen ein. Das System wechselt dann zur Schnittstelle zur Prozessausführung des angegebenen Benutzers.
a. Funktion
Der Befehl free wird verwendet, um die Speichernutzung anzuzeigen, und die Nutzungsberechtigung gilt für alle Benutzer.
b.Format
frei [-b -k -m] [-o] [-s Verzögerung] [-t] [-V]
c.Hauptparameter
-b -k - m: Speichernutzung in Bytes (KB, MB) anzeigen.
-s Verzögerung: Zeigt die Anzahl der Sekunden an, um die Speichernutzung anzuzeigen.
-t: Zeigt die Speichersummenspalte an.
-o: Die Pufferanpassungsspalte wird nicht angezeigt.
d.Anwendungsbeispiel
Der Befehl free ist der Hauptbefehl zur Überprüfung der Speichernutzung. Der Vorteil gegenüber dem Top-Befehl besteht darin, dass er einfach zu verwenden ist und nur sehr wenige Systemressourcen beansprucht. Über den Parameter -S können Sie mit dem Befehl free kontinuierlich überwachen, wie viel Speicher verwendet wird, sodass Sie ihn als praktischen Echtzeitmonitor verwenden können.
#free -b -s5
Nach Verwendung dieses Befehls meldet das Terminal kontinuierlich die Speichernutzung (in Bytes), die alle 5 Sekunden aktualisiert wird.

Das obige ist der detaillierte Inhalt vonAnzeige und Verwaltung des Linux-Speichers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn