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

Python-Programm frisst RAM

Der größte Teil Ihres Arbeitsspeichers ist für Anwendungen frei, da er für die Puffer und das Caching verwendet wird. Sehen Sie sich die Zeile "-/+ buffers/cache:" an, um zu sehen, wie viel RAM wirklich ist gebraucht/kostenlos. Eine Erklärung finden Sie hier.

Um zu überprüfen, ob Python Speicher verliert, überwachen Sie die RSS-Größe (oder %mem) dieser Python im Laufe der Zeit. Z.B. Schreiben Sie ein Shell-Skript, das alle paar Stunden von einem Cron-Job aufgerufen wird, um die Ausgabe Ihres ps anzuhängen Befehlskette und die Ausgabe von free Befehl in eine Datei.

Wenn Sie feststellen, dass die Python-Prozesse sind Speicherlecks gibt es ein paar Dinge, die Sie tun können;

  • Ändern Sie Ihr Skript so, dass es nach 24 Stunden erlischt und verwenden Sie z.B. ein Cron-Job, um ihn neu zu starten (der einfache Ausweg.)
  • Werfen Sie einen tiefen Einblick in Python selbst und insbesondere in die Erweiterungsmodule, die Sie verwenden. Verwenden Sie die gc Modul zur Überwachung und Beeinflussung der Speichernutzung. Sie können z. rufen Sie gc.count() an regelmäßig die Menge der zur Abholung markierten Objekte zu überwachen. Sie können gc.collect() anrufen explizit und prüfen Sie, ob dies die Speichernutzung reduziert. Sie können auch den Erfassungsschwellenwert ändern.

Wenn die RAM-Nutzung von Python im Laufe der Zeit nicht zunimmt, könnte es sich um ein anderes Daemon-Programm handeln. Das oben erwähnte Speicherprotokollierungsskript sollte Ihnen sagen, um welches es sich handelt.

Es könnte auch einen anderen Grund geben, warum Ihr Computer einfriert. Suchen Sie in den Linux-Logdateien nach Hinweisen.

Bearbeiten: Da haben Sie wpa_supplicant Wenn Sie die Protokolldatei füllen, sollten Sie den Status des Dateisystems bzw. der Dateisysteme überprüfen. Ein volles Dateisystem kann dazu führen, dass das System hängen bleibt. Wenn Sie die drahtlose Schnittstelle nicht verwenden, deaktivieren Sie sie.


Linux
  1. So überprüfen Sie die RAM-Größe in der Linux-Befehlszeile in GB

  2. Wie begrenzen Pipelines die Speichernutzung?

  3. Was verwende ich unter Linux, um ein Python-Programm ausführbar zu machen?

  4. Programmspeicherlayout unter Linux

  5. Holen Sie sich den gesamten physischen Speicher in Python

Intel Optane Speicher vs. SSDs vs. RAM

Installation des RAM-Speichertesttools Memtest+ auf Redhat 7 Linux

Swapiness unter Linux:Alles, was Sie wissen müssen

Finden Sie die RAM-Größe in Linux

Wie viel RAM verwendet der Kernel?

Zwischenspeichern/Vorladen von Dateien unter Linux in den Arbeitsspeicher