GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich die Speichernutzung profilieren?

Verwenden Sie Massif, das Teil der Valgrind-Tools ist. Massif-Visualizer kann Ihnen helfen, die Daten grafisch darzustellen, oder Sie können einfach den ms_print verwenden Befehl.


Probieren Sie den mit gperftools von Google gelieferten Heap-Profiler aus. Ich habe es immer aus Quellen gebaut, aber es ist als vorkompiliertes Paket unter mehreren Linux-Distributionen verfügbar.

Die Verwendung ist so einfach wie das Verknüpfen einer dynamischen Bibliothek mit Ihren ausführbaren Dateien und das Ausführen des Programms. Es sammelt Informationen über jede dynamische Speicherzuweisung (soweit ich gesehen habe) und speichert auf der Festplatte einen Speicherauszug jedes Mal, wenn eines der folgenden Ereignisse eintritt:

  • HEAP_PROFILE_ALLOCATION_INTERVAL Bytes wurden vom Programm zugewiesen (Standard:1 GB)
  • die Marke für die High-Water-Speicherauslastung steigt um HEAP_PROFILE_INUSE_INTERVAL Bytes (Standard:100 MB)
  • HEAP_PROFILE_TIME_INTERVAL Sekunden sind abgelaufen (Standard:inaktiv)
  • Du rufst ausdrücklich HeapProfilerDump() auf aus Ihrem Code

Letzteres ist meiner Erfahrung nach am nützlichsten, da Sie genau steuern können, wann Sie einen Schnappschuss der Heap-Nutzung erhalten möchten und vergleichen Sie dann zwei verschiedene Snapshots und sehen Sie, was falsch ist.

Schließlich gibt es mehrere mögliche Ausgabeformate, wie textuell oder grafisch (in Form eines gerichteten Graphen):

Mit diesem Tool konnte ich falsche Speicherauslastungen erkennen, die ich mit Massif nicht finden konnte.


Linux
  1. So überprüfen Sie die Speichernutzung des Prozesses mit dem Linux-pmap-Befehl

  2. Wie begrenzen Pipelines die Speichernutzung?

  3. Wie kann ich die Top-Prozesse nach tatsächlicher Speichernutzung sortiert anzeigen?

  4. So erhalten Sie die CPU-Auslastung

  5. So ermitteln Sie die Benutzerspeichernutzung in Linux

So überprüfen Sie die Speichernutzung in Debian 10

So finden Sie die Top 10 der laufenden Prozesse nach Speicher- und CPU-Auslastung

So finden Sie die am häufigsten ausgeführten Prozesse nach Speichernutzung

Wie wird die Top/htop-Speichernutzung interpretiert?

So sortieren Sie den obersten Befehl basierend auf der Speichernutzung

Speicherauslastung des TOP-Befehls