NEWS
PC stürzt nach Laden hoher Datenmengen ab
-
Hallo zusammen,
schreibe in einer Influx relativ viele Daten für meine PV Anlage + Verbraucher.
Möchte ich über Grafana nun die Daten aus z.b. 90 Tagen holen, so stürzt mein Mini-Dell nach kürzester Zeit ab.
Kann man das irgendwie einstellen, dass er nur bis XX% Auslastung arbeitet und dafür länger für die Datenabfrage braucht?
Ich danke euch.
-
@chriswitt sagte in PC stürzt nach Laden hoher Datenmengen ab:
Möchte ich über Grafana nun die Daten aus z.b. 90 Tagen holen, so stürzt mein Mini-Dell nach kürzester Zeit ab.
Normalerweise aggregiert man Daten mit Tasks (hieß bei InfluxDB 1.x "Continuous Queries") um die Abfragen über längere Abfragezeiträume schneller zu machen.
Was genau fragst Du denn ab und wieviele Datensätze sind es insgesamt?
-
Wenn zu viel Speicher benötigt wird und das Betriebssystem abstürzt, dann solltest du eventuell auch nach Hardwaregründen suchen. Eventuell hat einer der Speicherbausteine einen hau
Normalerweise wird bei Speicherbedarf, der die vorhandene Hardware übersteigt Sachen in den Swap gelegt. Das macht einfach alles nur unendlich langsam. Wenn es dann tatsächlich auch für das Betriebssystem nicht mehr reicht, dann fängt es an Applikationen abzuschießen.
Daher ist deine Fehlerbeschreibung etwas seltsam, das der gesamte Rechner abstürzt
Was für ein Betriebssystem hast du laufen?
Bei Linux versuche mal im syslog nach Fehler zu suchen
Bei Windows in der Ereignisanzeige. Wobei da ist es meist etwas schwieriger etwas herauszulesen. -
Genau dein Skript
Sobald ich mehr als 30 Tage ansehen will geht die CPU Auslastung auf 100% und alles stürzt ab. Pc muss ich dann mit der „Hand „ starten.
Hardware : Dell OptiPlex 5040 SFF | Intel 6th Gen | i5-6500 | 8 GB | 512 GB SSD | DVD-ROM | | Exzellent
Linux Debian
IoBroker, influx, Grafana Sind installiert.
Standardausstattung:
-
Hier ein screen der Auslastung während er lädt.
Auslagerungsdatei habe ich schon von 1 auf 2 Gig erweitert. Reicht auch nicht.
Was kann man tun ? Ram erweitern auf 32 gig ?
-
@chriswitt sagte in PC stürzt nach Laden hoher Datenmengen ab:
Dell OptiPlex 5040 SFF | Intel 6th Gen | i5-6500 | 8 GB | 512 GB SSD | DVD-ROM | | Exzellen
na wieviel Speicher hast du denn tatsächlich? Hier 8GB, im Bild nur 4GB. Läuft alles in einem Container, oder normal ohne irgend etwas dazwischen?
In welchem Zeitabstand werden die Daten gespeichert?
Ro75.
-
Wo im Bild nur 4? Sind doch überall 8.
Naja ich habe alles per Terminal nacheinander installiert. Erst ioBroker , dann Influx, dann grafana. Also vermutlich nichts dazwischen (da kenn ich mich viel zu wenig aus )
So wie ich das verstehe schreibt das Skript von @haus-automatisierung jede Sekunde einen Wert.
-
@chriswitt sagte in PC stürzt nach Laden hoher Datenmengen ab:
Wo im Bild nur 4? Sind doch überall 8.
hast recht - mein Fehler
So wie ich das verstehe schreibt das Skript von @haus-automatisierung jede Sekunde einen Wert.
Jetzt rechne mal aus, wieviele Datensätze bei 90 Tagen geladen werden müssen. Wenn jede Sekunde ein Wert gespeichert wird, dann sind das bei 90 Tagen ca. 7.776.000 Datensätze. Für meine Begriffe zu viele Daten.
Ro75.
-
@ro75 said in PC stürzt nach Laden hoher Datenmengen ab:
@chriswitt sagte in PC stürzt nach Laden hoher Datenmengen ab:
Wo im Bild nur 4? Sind doch überall 8.
hast recht - mein Fehler
So wie ich das verstehe schreibt das Skript von @haus-automatisierung jede Sekunde einen Wert.
Jetzt rechne mal aus, wieviele Datensätze bei 90 Tagen geladen werden müssen. Wenn jede Sekunde ein Wert gespeichert wird, dann sind das bei 90 Tagen ca. 7.776.000 Datensätze. Für meine Begriffe zu viele Daten.
Ro75.
@Ro75 So wie es aussieht loggt es bei jeder Veränderung :
on({ id: Object.keys(loggingTemplate), change: 'ne' }, async (obj) => { // Update value in loggingObj const key = loggingTemplate[obj.id]; loggingObj[key] = obj.state.val;
Wie kann ich das ändern, dass er z.B. nur alle 30sek. loggt. Wäre für mich ausreichend.
Danke dir
-
in javascript einfach in einer variable den timestamp merken, an dem geschrieben wird.
beim nächsten trigger dann prüfen ob letzter timestamp mindestens 30*1000 größer ist.
aber dann sind es in 90 tagen immer noch 15 mio werte.wenn dir alle 30 sekunden reicht, dann kannst du ja mal probieren, das influx dir das auch alle 30 sekunden aggregiert und nur diese daten liefert. die abfrage ändert die zugrundeliegenden daten nicht, nur die abfrage liefert das.
damit kannst du dann rumspielen ob du evtl noch weiter aggregieren willst.ich kenne jetzt das skript nicht, aber da müsste doch sicherlich eine influx abfrage drin sein, die du nach den folgenden anweisungen apssassen kannst
https://docs.influxdata.com/influxdb/cloud/query-data/flux/window-aggregate/
versuche soviel funktionalität in die abfrage von influx zu legen, da diese das um einiges effizienter kann, wie du nachher in javascript auswerten kannst.
-
@oliverio said in PC stürzt nach Laden hoher Datenmengen ab:
in javascript einfach in einer variable den timestamp merken, an dem geschrieben wird.
beim nächsten trigger dann prüfen ob letzter timestamp mindestens 30*1000 größer ist.
aber dann sind es in 90 tagen immer noch 15 mio werte.wenn dir alle 30 sekunden reicht, dann kannst du ja mal probieren, das influx dir das auch alle 30 sekunden aggregiert und nur diese daten liefert. die abfrage ändert die zugrundeliegenden daten nicht, nur die abfrage liefert das.
damit kannst du dann rumspielen ob du evtl noch weiter aggregieren willst.ich kenne jetzt das skript nicht, aber da müsste doch sicherlich eine influx abfrage drin sein, die du nach den folgenden anweisungen apssassen kannst
https://docs.influxdata.com/influxdb/cloud/query-data/flux/window-aggregate/
versuche soviel funktionalität in die abfrage von influx zu legen, da diese das um einiges effizienter kann, wie du nachher in javascript auswerten kannst.
Ach ich hab halt so gar keine detailllierte Ahnung
Das Skript ist prinzipiell dieses hier :
https://haus-automatisierung.com/software/2023/05/11/influxdb2-pv-dashboard.html
Könnte mir das jemand umbauen auf einen x sek. log ?
Geb auch ein Bier aus