Quellen der Linux-Speichernutzung, die nicht in /proc/meminfo enthalten sind

Quellen der Linux-Speichernutzung, die nicht in /proc/meminfo enthalten sind

Ich betreibe einen Linux-Server, der seltsame Muster in der Speichernutzung zeigt, die ich zu untersuchen versuche.

Im Normalbetrieb werden laut Munin rund 200 MB Speicher für Anwendungen genutzt, hin und wieder (etwa alle paar Tage) kommt es jedoch zu einem plötzlichen Anstieg um rund 1 GB, wie in dieser Grafik zu sehen ist:

Munin-Speicherdiagramm, das einen plötzlichen Anstieg der Speichernutzung zeigt

Ich habe versucht, die Ursache dafür zu finden, bin mir aber nicht sicher, was es sein könnte. Die Tatsache, dass Munin diesen Speicher „Apps“ zuschreibt, lässt mich vermuten, dass einer der laufenden Prozesse einfach viel Speicher verbraucht, aber wenn man sich die Top-Prozesse ansieht, wenn dies geschieht, zeigt sich, dass keiner der Prozesse annähernd so viel Speicher verbraucht; tatsächlich ändern sich die 15 Prozesse mit dem höchsten Speicherverbrauch überhaupt nicht, wenn dies geschieht, und der oberste Prozess verbraucht nur 2,2 % des Speichers. Außerdem summieren sich die Speicherinformationen von PS nicht annähernd auf so viel Speicher, sondern eher auf etwa 200 MB.

Die Höhe der Zunahme ist dabei meist gleich und verschwindet, wie in diesem Beispiel zu sehen, nach ein paar Stunden einfach wieder.

Ich habe festgestellt, dass dieses Verhalten zuverlässig ausgelöst werden kann, indem man mit wget eine große Datei (1,4 GB) über einen SSH-Tunnel über das Netzwerk auf die lokale Festplatte herunterlädt (Netzwerkaktivität allein löst es nicht aus).

Um die Speichernutzung genauer zu sehen, habe ich begonnen, /proc/meminfoalle 10 Sekunden zu protokollieren und eineTarball mit Grafiken aus diesen Daten. Der Download, der das fragliche Verhalten verursachte, begann um 10:35:32 und wurde um 10:38:53 beendet. Die ursprünglichen Protokolldaten sind auch im Tarball enthalten.

In /proc/meminfogibt es keinen Wert, der hoch genug ansteigt, um diesen enormen Rückgang des freien Speichers zu erklären (das ist im Wesentlichen das, was Munin „Apps“ zuschreibt), was mich ratlos zurücklässt. Die Menge des verwendeten Speichers, die Munin meldet, wird auch von free und top gemeldet, aber es gibt keine Prozesse in der Prozessliste, die einen so hohen Speicherverbrauch oder den plötzlichen Anstieg beim Herunterladen einer Datei erklären würden.

Was ich zu verstehen versuche ist:

  • Ist es normal, dass sich die Speichernutzung auf diese Weise verhält, ohne dass ein bestimmter Prozess den erhöhten Speicher nutzt?
  • Welche anderen Speicherquellen könnte es geben, die in nicht berücksichtigt sind /proc/meminfo?

Oder könnte dies ein Zeichen dafür sein, dass das System kompromittiert ist?

Antwort1

Munin ist großartig für die Diagramme, sagt aber nicht, welche Anwendung die Belastung verursacht hat.

Man könnte „atop – advanced top“ verwenden.

oben werden Rohprotokolldateien aufgezeichnet. Anschließend kann man eine solche Datei öffnen und interaktiv in der Zeit vor- und zurückgehen und sehen, was zu einem bestimmten Zeitpunkt passiert ist.

ator -r /var/log/atop_oame_dateAnstatt tund Tmit den Schlüsseln können Sie zum Zeitpunkt der verdächtigen Aktivität zurückgehen und sehen, was dort passiert ist.

Antwort2

Ihr System hat keinen physischen Speichermangel. Wenn Sie also versuchen, eine 1,4 GB große Datei zu übertragen, werden 1,4 GB Speicher verwendet. Ihr System hat zwei Möglichkeiten: Es kann den Speicher entweder vollständig verschwenden oder ihn ineffizient nutzen. Es entscheidet sich für Letzteres. Dies ist ein normales Verhalten.

verwandte Informationen