it-swarm.com.de

Wie kann ich die Speichernutzung überwachen?

Ich habe top verwendet, um die Speichernutzung im Moment zu sehen. Ich möchte jedoch die Speichernutzung über einen bestimmten Zeitraum hinweg überwachen. ZB starten Sie die Überwachung und führen Sie dann einige Befehle aus. Beenden Sie die Überwachung und überprüfen Sie, wie viel Speicher in diesem Zeitraum belegt war.

Wie kann ich das auf Ubuntu Server machen?

Ich schätze, ich könnte alle 5 Sekunden einen Cronjob starten und einen Befehl aufrufen, der die aktuelle Speichernutzung in einer Textdatei aufzeichnet. Aber welchen Befehl soll ich verwenden, um die aktuelle Speichernutzung in einem Format abzurufen, das sich einfach in eine Textdatei schreiben lässt?

260
Jonas

Ich empfehle die vorherigen Antworten zu kombinieren

watch -n 5 free -m

Beachten Sie, dass Linux gerne zusätzlichen Speicher für Cache-Festplattenblöcke verwendet. Sie möchten sich also nicht nur das freie Mem ansehen. Sie möchten die Spalte free der Zeile -/+ buffers/cache: anzeigen. Dies zeigt, wie viel Speicher für Anwendungen verfügbar ist. Also habe ich gerade free -m ausgeführt und folgendes erhalten:

             total       used       free     shared    buffers     cached
Mem:          3699       2896        802          0        247       1120
-/+ buffers/cache:       1528       2170
Swap:         1905         62       1843

Ich weiß, dass ich 1528 MB verwende und 2170 MB frei habe .

Hinweis: Um diesen watch Zyklus zu stoppen, können Sie einfach drücken Ctrl+C.

321
Justin Force

Ich denke, htop ist die beste Lösung.

  • Sudo apt-get install htop

Auf diese Weise werden Sie feststellen, welche Programme am meisten RAM verwenden. und Sie können einfach einen beenden, wenn Sie möchten. Hier ist ein Screenshot!

210
Alvar

Wenn Sie nach einer guten Aufschlüsselung des Speichers suchen, der von jedem ausgeführten Prozess verwendet wird, empfehle ich möglicherweise das Auschecken von ps_mem.py (gefunden hier) bei pixelbeat.org).

Ich weiß, dass Sie in den obigen Kommentaren erwähnt haben, dass Sie einen einzeiligen Snapshot von free wollen, aber ich dachte, andere könnten dies nützlich finden.

Beispielausgabe:

[email protected]:~$ Sudo ps_mem.py
[Sudo] password for user:
 Private  +   Shared  =  RAM used       Program

  4.0 KiB +   7.5 KiB =  11.5 KiB       logger
  4.0 KiB +   8.0 KiB =  12.0 KiB       mysqld_safe
  4.0 KiB +  10.0 KiB =  14.0 KiB       getty
  4.0 KiB +  42.0 KiB =  46.0 KiB       saslauthd (5)
 48.0 KiB +  13.0 KiB =  61.0 KiB       init
 56.0 KiB +  27.5 KiB =  83.5 KiB       memcached
 84.0 KiB +  26.5 KiB = 110.5 KiB       cron
120.0 KiB +  50.0 KiB = 170.0 KiB       master
204.0 KiB + 107.5 KiB = 311.5 KiB       qmgr
396.0 KiB +  94.0 KiB = 490.0 KiB       tlsmgr
460.0 KiB +  65.0 KiB = 525.0 KiB       rsyslogd
384.0 KiB + 171.0 KiB = 555.0 KiB       Sudo
476.0 KiB +  83.0 KiB = 559.0 KiB       monit
568.0 KiB +  60.0 KiB = 628.0 KiB       freshclam
552.0 KiB + 259.5 KiB = 811.5 KiB       pickup
  1.1 MiB +  80.0 KiB =   1.2 MiB       bash
  1.4 MiB + 308.5 KiB =   1.7 MiB       fail2ban-server
888.0 KiB +   1.0 MiB =   1.9 MiB       sshd (3)
  1.9 MiB +  32.5 KiB =   1.9 MiB       munin-node
 13.1 MiB +  86.0 KiB =  13.2 MiB       mysqld
147.4 MiB +  36.5 MiB = 183.9 MiB       Apache2 (7)
---------------------------------
                        208.1 MiB
=================================

 Private  +   Shared  =  RAM used       Program

Der einzige Teil, den ich nicht mag, ist die Tatsache, dass das Skript angibt, Root-Rechte zu benötigen. Ich hatte noch keine Gelegenheit, genau zu sehen, warum dies der Fall ist.

40
Jason Mock

Verwenden Sie den Befehl free . Dies ist beispielsweise die Ausgabe von free -m:

             total       used       free     shared    buffers     cached
Mem:          2012       1666        345          0        101        616
-/+ buffers/cache:        947       1064
Swap:         7624          0       7624

free -m | grep /+ gibt nur die zweite Zeile zurück:

-/+ buffers/cache:        947       1064
24
Isaiah

Der Befehl watch kann nützlich sein. Versuchen Sie watch -n 5 free, die Speichernutzung mit Updates alle fünf Sekunden zu überwachen.

11
mgunes

Sie können dies mit cat /proc/meminfo tun.

MemTotal:        4039160 kB
MemFree:          309796 kB
MemAvailable:    3001052 kB
Buffers:          345636 kB
Cached:          2341288 kB
SwapCached:            8 kB
Active:          1725160 kB
Inactive:        1551652 kB
Active(anon):     538404 kB
Inactive(anon):    70076 kB
Active(file):    1186756 kB
Inactive(file):  1481576 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:       4194300 kB
SwapFree:        4194044 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        589988 kB
Mapped:           255972 kB
Shmem:             18596 kB
Slab:             374888 kB
SReclaimable:     310496 kB
SUnreclaim:        64392 kB
KernelStack:        6976 kB
PageTables:        26452 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     6213880 kB
Committed_AS:    3589736 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      147392 kB
DirectMap2M:     4046848 kB
7
Amir

Wenn Sie Byob für die visuelle Überwachung der gesamten RAM - Auslastung verwenden, wird die Speichernutzung in der unteren rechten Ecke des Terminals beibehalten und ausgeführt, während Sie sich in einer beliebigen Terminalsitzung befinden .

Wie Sie auf dem Screenshot sehen können, hat meine virtuelle Maschine eine Betriebszeit von 1 Stunde und drei Minuten, eine Auslastung von 0,00, einen (virtuellen) 2,8-GHz-Prozessor und 994 MB (21%) des auf dem System verfügbaren RAM.

Byobu in use

4
bafromca

Einzeilige Lösung und Ausgabe:

free -m | grep "Mem:"

Hier ist ein Beispiel für die erwartete Ausgabe:

Mem:           3944         652         302          18        2990        2930
3
Tim

Überwachen der Speichernutzung

Ich stimme eher mit einem der vorhergehenden Beiträge überein, in denen Cacti als eine großartige Möglichkeit zur Überwachung der Speichernutzung erwähnt wurde. Da es den Anschein hat, dass Kakteen im Mainstream nicht mehr beliebt sind, gibt es eine alternative Grafikanwendung namens Graphite.

Graphite ist relativ einfach auf einem Ubuntu-Server zu installieren. Um es zu installieren, können Sie überprüfen Sie diesen Link für die einfach zu befolgenden Installationsverfahren.

Nach der Installation von Graphit können Sie nun Speichermetriken in einem von Ihnen gewünschten Intervall senden. alle 5 Sekunden, jede Minute, jede Stunde ... usw.

Wie bereits in früheren Beiträgen vorgeschlagen, können Sie zum Zeichnen von Speichermetriken mithilfe von Systemtools ein eigenes Skript schreiben, um die erforderlichen Speicherinformationen zu erfassen. Oder Sie können ein vorgefertigtes snmp-Plugin verwenden, das die ganze Arbeit für Sie erledigt.

Wenn Sie Ihr eigenes Speicherskript schreiben möchten, sollten Sie sicherstellen, dass Sie bei der Berechnung des verwendeten Speichers den zwischengespeicherten und den zwischengespeicherten Speicher berücksichtigen. Andernfalls werden falsche Daten erfasst.

Wenn Sie stattdessen ein snmp-Plugin verwenden möchten, das bereits alle erforderlichen Berechnungen für Sie durchführt, finden Sie hier einen Link zu einem, der ziemlich gut funktioniert: checkMemoryviaSNMP .

Vorteile von SNMP:

Ich habe SNMP auf allen von mir überwachten Remote-Knoten installiert. Auf diese Weise kann ich alle meine Systeme von einem zentralen Server aus überwachen, ohne ein Plugin auf die Remote-Knoten kopieren oder setzen zu müssen.

Nachteile von SNMP:

Sie müssen sicherstellen, dass der snmp-Agent auf jedem der Remote-Knoten installiert ist, auf denen Sie den Speicher überwachen möchten. Diese Installation ist jedoch ein einmaliger Vorgang. Wenn Sie Automatisierungstools wie Chefkoch, Marionette oder ähnliche Tools in Ihrer Umgebung verwenden, ist dies überhaupt kein Problem.

Konfiguration des SNMP-Agenten auf dem/den Remote-Knoten:

Nachdem der snmp-Agent installiert wurde, rufen Sie einfach die Datei /etc/snmpd/snmpd.conf auf und fügen Sie diese Zeile hinzu:

rocommunity  (specify-a-community-string-aka-password-here)

Starten Sie dann den snmpd-Agenten neu mit:

/etc/init.d/snmpd restart

Anschließend können Sie auf Ihrem zentralen Server, von dem aus Sie alle anderen Server überwachen, den folgenden Befehl ausführen:

$ time ./checkMemoryviaSNMP -v2 public gearman001.phs.blah.com 30 90 graphite,10.10.10.10,2003,typical
WARNING: Used = [ 3.26154 GB ], Installed = [ 5.71509 GB ], PCT.Used = [ 57.069% ], Available.Memory = [ 2.00291 GB ]. Buffer = [ 137.594 MB ], Cached = [ 1.3849 GB ]. Thresholds: [ W=(30%) / C=(90%) ].  System Information = [ Linux gearman001.phs.blah.com 2.6.32-504.30.3.el6.x86_64 #1 SMP Thu Jul 9 15:20:47 EDT 2015 x86_64 ].

real    0m0.23s
user    0m0.03s
sys     0m0.02s
1
SimplisticSpeed

Ich würde Kakteen verwenden. Dadurch wird die Speichernutzung usw. über einen bestimmten Zeitraum hinweg grafisch dargestellt, und Sie können die Nutzung mit Ihrem Webbrowser überprüfen.

1
Matt