Arbeitsspeicher läuft voll, Prozess python3 steigt auf über 70%
Posted: 12 Jul 2021, 12:58
Hallo zusammen,
wir wollen verschiedene Kombinationen aus RevPi und DI, DIO-Modulen nutzen, um etwa 150 unbemannte Standorte zu überwachen. Aktuell sind wir im PoC und haben, dass Problem, das python3 im laufe von ca. 30 Stunden zunehmend bis zu 70% des Arbeitsspeichers benötigt und schließlich den RevPi zum Absturz bringt. Das aktuelle Seznario sieht wie folgt aus:
Am Standort:
1 Stk. RevPi Connect+ mit 32 GB
1 Stk. DIO Modul
3 Stk. DI Module
Aktuell nutzen wir maximal 25 DIs pro Standort. Der Rest ist noch nicht in Betrieb.
Auf dem RevPi läuft ein aktuelles RevPi-Image. Wir haben alle Pakete wie in der Anleitung beschrieben per apt-get auf den neuesten Stand gebracht und anschließend einen Zabbix-Proxy mit sqlite3 DB und einen Zabbix-Agent installiert.
Im Pictory haben wir die Module konfiguriert. Außerdem nutzen wir Node-Red um alle 55 Sekunden die verscheidenen DIs per RevPi-getpin-Node und RevPi-multiple-input-Node abzufragen und via zabbix-sender-Node über den lokalen Proxy an unseren Zabbix-Server weiterzu geben. Außerdem wird im Node-Red via RevPi-getpin-Node und revpi-output-Node der Watchdog getogglet.
Das funktioniert alles bis zum Arbeitsspeicher überlauf problemlos.
Einziger laufender python3 Prozess ist scheinbar revpi-server.py. Dazu hier die Ausgabe von top und ps nach einem Reboot. Der MEM-Wert für python3 steigt jetzt über 30 Stunden bis auf 70% an. Das Problem besteht auf allen drei Testgeräten, die sich nur in Hostname, IP und genutzten DIs unterschieden.
Ich wäre dankbar für jeden Tipp wo ich mich auf Fehlersuche begeben kann.
Danke,
Lars
wir wollen verschiedene Kombinationen aus RevPi und DI, DIO-Modulen nutzen, um etwa 150 unbemannte Standorte zu überwachen. Aktuell sind wir im PoC und haben, dass Problem, das python3 im laufe von ca. 30 Stunden zunehmend bis zu 70% des Arbeitsspeichers benötigt und schließlich den RevPi zum Absturz bringt. Das aktuelle Seznario sieht wie folgt aus:
Am Standort:
1 Stk. RevPi Connect+ mit 32 GB
1 Stk. DIO Modul
3 Stk. DI Module
Aktuell nutzen wir maximal 25 DIs pro Standort. Der Rest ist noch nicht in Betrieb.
Auf dem RevPi läuft ein aktuelles RevPi-Image. Wir haben alle Pakete wie in der Anleitung beschrieben per apt-get auf den neuesten Stand gebracht und anschließend einen Zabbix-Proxy mit sqlite3 DB und einen Zabbix-Agent installiert.
Im Pictory haben wir die Module konfiguriert. Außerdem nutzen wir Node-Red um alle 55 Sekunden die verscheidenen DIs per RevPi-getpin-Node und RevPi-multiple-input-Node abzufragen und via zabbix-sender-Node über den lokalen Proxy an unseren Zabbix-Server weiterzu geben. Außerdem wird im Node-Red via RevPi-getpin-Node und revpi-output-Node der Watchdog getogglet.
Das funktioniert alles bis zum Arbeitsspeicher überlauf problemlos.
Einziger laufender python3 Prozess ist scheinbar revpi-server.py. Dazu hier die Ausgabe von top und ps nach einem Reboot. Der MEM-Wert für python3 steigt jetzt über 30 Stunden bis auf 70% an. Das Problem besteht auf allen drei Testgeräten, die sich nur in Hostname, IP und genutzten DIs unterschieden.
Code: Select all
top - 12:28:35 up 50 min, 1 user, load average: 4.08, 3.32, 2.99
Tasks: 182 total, 1 running, 181 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.9 us, 9.2 sy, 0.0 ni, 89.5 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
MiB Mem : 925.4 total, 519.0 free, 155.2 used, 251.2 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 704.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
160 root -51 0 0 0 0 I 25.0 0.0 12:31.27 pl011_pio_tx
161 root -40 0 0 0 0 S 3.6 0.0 1:38.47 piControl Uart
1859 root 20 0 85272 31004 8472 S 2.6 3.3 1:13.04 python3
143 root 20 0 0 0 0 I 1.6 0.0 0:19.03 kworker/u8:2-events_unbound
158 root -51 0 0 0 0 S 1.3 0.0 0:42.56 irq/81-uart-pl0
162 root -39 0 0 0 0 D 1.3 0.0 0:40.10 piControl I/O
82 root -51 0 0 0 0 S 1.0 0.0 0:28.36 irq/56-dwc_otg_
159 root -51 0 0 0 0 I 1.0 0.0 0:34.34 pl011_pio_rx
2693 pi 20 0 10468 3068 2568 R 1.0 0.3 0:01.30 top
80 root -51 0 0 0 0 S 0.7 0.0 0:25.22 irq/56-dwc_otg
81 root -51 0 0 0 0 S 0.7 0.0 0:16.19 irq/56-dwc_otg_
9 root 20 0 0 0 0 S 0.3 0.0 0:03.45 ksoftirqd/0
10 root -2 0 0 0 0 S 0.3 0.0 0:06.59 ktimersoftd/0
24 root 20 0 0 0 0 S 0.3 0.0 0:02.36 ksoftirqd/1
40 root 20 0 0 0 0 S 0.3 0.0 0:01.46 ksoftirqd/3
pi@RevPi:~ $ ps -ef | grep python
root 1859 1 2 11:38 ? 00:01:13 /usr/bin/python3 -u revpi-server.py
pi 2702 2681 0 12:29 pts/0 00:00:00 grep --color=auto python
pi@RevPi:~ $
Ich wäre dankbar für jeden Tipp wo ich mich auf Fehlersuche begeben kann.
Danke,
Lars