it-swarm.com.de

So überprüfen Sie, welcher Prozess den meisten Speicher belegt

Wenn ich free auf einem der Prod-Server überprüfe, werden 70% des Speichers verwendet:

             total       used       free     shared    buffers     cached
Mem:     164923172  141171860   23751312          0    4555616   20648048
-/+ buffers/cache:  115968196   48954976
Swap:      8388600          0    8388600

Ich habe jedoch nicht gefunden, welcher Prozess den Speicher verwendet. Ich habe den Befehl top ausprobiert und er zeigt den Prozess nur mit Speicher 1,1 und 5,4% an

Wie kann ich herausfinden, welcher Prozess den Speicher verwendet?

Nachfolgend sind die wichtigsten Befehlsergebnisse aufgeführt:

15085 couchbas  25   0 2784m 2.4g  40m S 183.7  1.5 299597:00 beam.smp
28248 tibco     18   0  124m 100m 3440 S 20.9  0.1   2721:45 tibemsd
15334 couchbas  15   0 9114m 8.6g 3288 S  9.0  5.4  12996:28 memcached
15335 couchbas  18   0  6024  600  468 S  2.0  0.0   1704:54 sigar_port
15319 couchbas  15   0  775m 2516  944 S  0.7  0.0 269:13.41 i386-linux-godu
12167 tibco     16   0 11284 1464  784 R  0.3  0.0   0:00.04 top
12701 root      15   0  451m 427m 2140 S  0.3  0.3  18:25.02 controller
13163 root      11  -5     0    0    0 S  0.3  0.0 289:58.58 vxglm_thread
40
sandeep

Dies zeigt Ihnen die Top-10-Prozesse, die den meisten Speicher verwenden:

ps aux --sort=-%mem | awk 'NR<=10{print $0}'

using top: Wenn Sie top geöffnet haben, drücken Sie m, um den Vorgang basierend auf der Speichernutzung zu verkürzen.

Dies wird Ihr Problem jedoch nicht lösen. Unter Linux ist alles entweder eine Datei oder ein Prozess. Die Dateien, die Sie geöffnet haben, verbrauchen also auch den Speicher. Das wird also nicht helfen.

lsof gibt Ihnen alle geöffneten Dateien mit der Größe der Datei oder dem Datei-Offset in Bytes.

57
Hackaholic

Ihr Widder wird nicht verwendet. Linux speichert das Material standardmäßig nur auf Ihrer Festplatte zwischen und fügt das, was es zwischenspeichert, in den Abschnitt "used" von ram ein.

Wenn Sie Anwendungen laden, die diesen RAM tatsächlich verwenden, können Sie sie verwenden.

Siehe http://www.linuxatemyram.com/

Sie können ps und sort leiten, um den Prozess mit dem meisten Speicher zu erhalten. Außerdem können Sie andere Prozessdetails angeben, die Sie damit sehen möchten:

ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -n -r | less

PS: Das Obige setzt voraus, dass Ihre Speicherspalte zuerst "sort -k 1 -n -r" ist.

6
Hynk

Mit dem Befehl slabtop können Sie anzeigen, welche Slab-Objekte vom Kernel verwendet werden.
Sie können auch die Ausgabe von/proc/meminfo überprüfen

Suchen Sie nach diesen 2 Zeilen in der Ausgabe

Slab:              68136 kB
SReclaimable:      21208 kB 

Das obige Beispiel zeigt, dass 68 MB Slab-Cache vom Kernel verwendet werden und 21 MB zurückgefordert werden können. Zur Rückforderung können Sie die hier beschriebene Technik verwenden https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html-single/Performance_Tuning_Guide/#s-memory-tunables

echo 2 > /proc/sys/vm/drop_caches  
3
Dmitry Zayats

Für eine interaktive Analyse können Sie htop verwenden und dann die Funktionstaste F6 , um die Sortierreihenfolge zu wählen, z. PERCENT_CPU (Speichernutzung in Prozent), M_RESIDENT (Größe des residenten Speichers, der tatsächlich verwendete Speicher), M_SIZE (Größe des virtuellen Speichers) oder M_SHARE (Größe des gemeinsam genutzten Speichers). Die ersten beiden sind die relevanten Zahlen .

Die grünen Linien sind Fäden. Drücken Sie (Großbuchstaben) K und H, um sie auszublenden.

1
Marc Wäckerlin