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