
Ich versuche, die Speichernutzung auf meinem Ubuntu-Server zu überwachen. Wenn ich den Befehl „top“ ausführe, wird angezeigt, dass 70 % des Speichers verwendet werden (angezeigt in der Zeile „Mem:“). Aber ich möchte die Prozesse finden, die meine Speichernutzung nutzen, und diese addieren. Es sind weit von 70 % entfernt. Kann mir das jemand erklären?
Vielen Dank!
Hier ist mein Top-Befehlsergebnis:
oben – 20:59:06, 23 Tage, 33 Minuten, 3 Benutzer, durchschnittliche Auslastung: 0,06, 0,12, 0,09 Aufgaben: 92 insgesamt, 1 läuft, 91 schläft, 0 angehalten, 0 Zombie CPU(s): 0,3 % us, 0,2 % sy, 0,0 % ni, 99,5 % id, 0,0 % wa, 0,0 % hi, 0,0 % si, 0,0 % st Speicher: 4124236k gesamt, 2903104k genutzt, 1221132k frei, 147508k Puffer Swap: 4192252k insgesamt, 440k verwendet, 4191812k frei, 2596860k zwischengespeichert PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL 30558 mysql 20 0 311m 36m 5956 S 0 0,9 0:00.74 mysqld 28848 jiechao 20 0 50688 9244 3144 S 0 0,2 0:05,65 Python 956 root 20 0 11712 8004 2964 S 0 0.2 0:39.26 ddclient - slee 28846 jiechao 20 0 49256 7652 3280 S 0 0,2 0:07.17 Python 22284 jiechao 20 0 10400 6876 1664 S 0 0,2 0:00.49 bash 30433 jiechao 20 0 10344 6776 1620 S 0 0,2 0:00.46 bash 31053 jiechao 20 0 10344 6768 1612 S 0 0,2 0:00.47 bash 28847 jiechao 20 0 48168 6096 2980 S 0 0,1 0:00,59 Python 29178 www-Daten 20 0 228m 5392 2052 S 0 0,1 0:00.06 apache2 29179 www-Daten 20 0 12796 5148 1920 S 0 0,1 0:00.02 apache2 29180 www-Daten 20 0 12796 5148 1920 S 0 0,1 0:00.02 apache2 29181 www-Daten 20 0 12796 5148 1920 S 0 0,1 0:00.02 apache2 29182 www-Daten 20 0 12796 5148 1920 S 0 0,1 0:00.02 apache2 29183 www-Daten 20 0 12796 5148 1920 S 0 0,1 0:00.02 apache2 999 Wurzel 20 0 11396 3948 2052 S 0 0,1 0:21.21 apache2 926 hoppla 20 0 24572 3284 2280 S 0 0.1 0:00.18 hoppla 30933 root 20 0 9604 3104 2484 S 0 0.1 0:00.00 sshd 22164 root 20 0 9604 3096 2484 S 0 0.1 0:00.01 sshd 30313 root 20 0 9604 3096 2480 S 0 0,1 0:00.00 sshd 24302 root 20 0 9632 3024 2428 S 0 0.1 0:00.07 sshd 787 root 20 0 6664 2424 1988 S 0 0.1 0:00.05 sshd 1 Wurzel 20 0 3504 1876 1276 S 0 0,0 0:01,57 init 24421 jiechao 20 0 9632 1596 992 S 0 0,0 0:00,00 sshd 812 syslog 20 0 31044 1484 1008 S 0 0,0 1:47,00 rsyslogd
Antwort1
Natürlich ist diese Zahl eine Kombination aus dem vom Prozess verwendeten RAM und den Puffern und dem Cache für Dateien. Linux verfolgt die Philosophie, den RAM für aufgerufene Dateien maximal auszunutzen, anstatt für diese Dateien auf die Festplatte zugreifen zu müssen.
Versuchen Sie entweder, den Befehl zu verwenden free
oder den Kernel selbst über diesen Befehl anzuzeigen.cat /proc/meminfo.
frei
% free
total used free shared buffers cached
Mem: 7987492 7717152 270340 0 314644 2435048
-/+ buffers/cache: 4967460 3020032
Swap: 5963772 1304 5962468
Katze /proc/meminfo
% cat /proc/meminfo
MemTotal: 7987492 kB
MemFree: 284328 kB
Buffers: 314384 kB
Cached: 2427852 kB
SwapCached: 116 kB
Active: 4698232 kB
Inactive: 2374796 kB
Active(anon): 3756264 kB
Inactive(anon): 768392 kB
Active(file): 941968 kB
Inactive(file): 1606404 kB
Unevictable: 68 kB
Mlocked: 68 kB
SwapTotal: 5963772 kB
SwapFree: 5962468 kB
Dirty: 452 kB
Writeback: 0 kB
AnonPages: 4330964 kB
Mapped: 185540 kB
Shmem: 193864 kB
Slab: 306532 kB
SReclaimable: 261520 kB
SUnreclaim: 45012 kB
KernelStack: 6192 kB
PageTables: 94376 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 9957516 kB
Committed_AS: 9671884 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 585392 kB
VmallocChunk: 34359040964 kB
HardwareCorrupted: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 12288 kB
DirectMap2M: 8237056 kB
Der free
Befehl zeigt Ihnen den gesamten RAM, in meinem Fall 7987492, von denen 7717152 verwendet werden und 270340 frei sind. Dies ist eine Kombination aus RAM, Puffern und Cache. Die 2. Zeile zeigt Ihnen, wie viel von diesem RAM von den Puffern und dem Cache verwendet wird, 4967460, was bedeutet, dass ich tatsächlich 3020032 RAM frei habe.
Von einemitworld.com-Artikelzum Sinnvoller Umgang mit der Speichernutzung:
Die Pufferzahl stellt die im Speicher vorhandenen Blöcke dar, die entstehen, wenn der Kernel auf die Festplatte zugreift, z. B. wenn der Kernel den Inhalt von Dateien lesen muss. Die zwischengespeicherte Zahl gibt an, wie viel RAM zum Zwischenspeichern des Inhalts kürzlich gelesener Dateien verwendet wird. Die Pufferzahl erhöht sich, wenn die Dateisystemebene umgangen wird, während der Cache wächst, wenn das Dateisystem verwendet wird. Beide Werte wachsen, wenn die Anzahl der Lesevorgänge zunimmt.
NOTIZ:Bedenken Sie, dass der Speichermanager des Linux-Kernels den gesamten für Puffer und Cache verwendeten RAM freigibt, wenn eine Anwendung ihn tatsächlich benötigt.
Ressourcen