NEWS
[Gelöst] InfluxDB hoher Speicherverbrauch
-
Hallo zusammen,
ich habe im Proxmox in einem LXC InfluxDB (2.7.1) und Grafana am laufen. InfluxDB nimmt dabei aber massiv Speicherplatz ein für (in meinen Augen) wenig Daten.
Ich habe ca. 333k Einträge in der InfluxDB die aus dem IoBroker kommen. Sind überwiegend Verbrauchswerte von Steckdosen und ein paar Werte von Fensterkontakten.
In Summe verbraucht das ganze 27GB.
Hier die einzelnen Ordner in dem autogen Ordner von InfluxDB:
363M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/1 638M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/11 694M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/13 462M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/15 444M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/17 499M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/19 563M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/21 673M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/23 728M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/25 783M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/27 839M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/29 825M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/3 1003M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/31 1.1G /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/33 919M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/35 959M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/37 999M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/39 1.1G /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/41 1.1G /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/43 708M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/45 698M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/47 743M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/49 528M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/5 787M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/51 972M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/53 1.1G /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/55 1.1G /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/57 177M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/59 862M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/65 1.1G /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/67 1.2G /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/69 527M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/7 1.2G /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/71 103M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/73 583M /var/lib/influxdb/engine/data/764a97bf267cbb16/autogen/9 27G total
Hatte schonmal jemand das Problem? Die "paar" Datensätze können doch keine 27GB Speicher verbrauchen oder habe ich da ein komplett falsches Gefühl? Google spuckt da leider auch nur wenig zu aus.
Danke euch.
Viele Grüße
Jaksa
-
@jaksa sagte in InfluxDB hoher Speicherverbrauch:
Die "paar" Datensätze können doch keine 27GB Speicher verbrauchen
Das ist in der Tat viel zu viel. Zeig mal die Buckets und Measurements. Könnte es sein, dass du "Metrics" wegschreibst?
-
@marc-berg said in InfluxDB hoher Speicherverbrauch:
@jaksa sagte in InfluxDB hoher Speicherverbrauch:
Die "paar" Datensätze können doch keine 27GB Speicher verbrauchen
Das ist in der Tat viel zu viel. Zeig mal die Buckets und Measurements. Könnte es sein, dass du "Metrics" wegschreibst?
Das hier sind die Buckets bei mir:
In "iobroker" sind die Daten aus dem IoBroker drin.
_monitoring und _tasks sind leer.
Glaube du hast mich aber in die richtige Richtung gestoßen. Ich bin immer davon ausgegangen das dieses "IoBrokerBucket" etwas mit dem System selber zu tun hat. Das ist ordentlich vollgepackt mit Daten. Sind das die Metrics die du angesprochen hast?
Kann ich das einfach löschen? Bzw da die Retention runter setzen? Die steht aktuell in dem Bucket auf forever. Bewusst habe ich das damals aber nicht eingestellt. Bzw. kann man das Weg schreiben dieser irgendwo deaktivieren? Wenn ich das einfach lösche wird das ja dann schätze ich mal ständig auf Fehler laufen, oder?
Danke dir.
Edit: Ich habe grade die IDs vergleichen. Das ist genau dieses "IoBrokerBucket" das den ganzen Speicher frisst bei mir. Das "iobroker" bucket verbaucht nur 9MB.
-
@jaksa sagte in InfluxDB hoher Speicherverbrauch:
Kann ich das einfach löschen? Bzw da die Retention runter setzen? Die steht aktuell in dem Bucket auf forever. Bewusst habe ich das damals aber nicht eingestellt. Bzw. kann man das Weg schreiben dieser irgendwo deaktivieren? Wenn ich das einfach lösche wird das ja dann schätze ich mal ständig auf Fehler laufen, oder?
Danke dir.Ich nehme an, dass du einen Scraper aktiviert hast:
den zunächst mal löschen.
Danach musst du dich entscheiden, ob du die "Metrics"-Measurements manuell löschen magst oder ob deine bereits erfassten Produktivdaten nicht so wertvoll sind. Dann könntest du einfach das gesamte Bucket löschen und von da an wieder mit den Produktivdaten sammeln beginnen. Damit ersparst du dir das mühsame einzelne Löschen auf der Kommandozeile.Fakt ist, dass daher wohl 98% deines Volumens stammen ...
Edit: jetzt sehe ich erst, dass es zwei Buckets gibt. Also ja, nach dem Löschen des Scrapers kannst du das Bucket "IoBrokerBucket" löschen.
-
@marc-berg said in InfluxDB hoher Speicherverbrauch:
@jaksa sagte in InfluxDB hoher Speicherverbrauch:
Kann ich das einfach löschen? Bzw da die Retention runter setzen? Die steht aktuell in dem Bucket auf forever. Bewusst habe ich das damals aber nicht eingestellt. Bzw. kann man das Weg schreiben dieser irgendwo deaktivieren? Wenn ich das einfach lösche wird das ja dann schätze ich mal ständig auf Fehler laufen, oder?
Danke dir.Ich nehme an, dass du einen Scraper aktiviert hast:
den zunächst mal löschen. Danach musst du dich entscheiden, ob du die "Metrics"-Measurements manuell löschen magst oder ob deine bereits erfassten Produktivdaten nicht so wertvoll sind. Dann könntest du einfach das gesamte Bucket löschen und von da an wieder mit den Produktivdaten sammeln beginnen. Damit ersparst du dir das mühsame einzelne Löschen auf der Kommandozeile.
Fakt ist, dass daher wohl 98% deines Volumens stammen ...
Edit: jetzt sehe ich erst, dass es zwei Buckets gibt. Also ja, nach dem Löschen des Scrapers kannst du das Bucket "IoBrokerBucket" löschen.
Vielen Dank!
Daran hat es am Ende gelegen. Hatte einen Scraper aktiviert. Habe den Scraper gelöscht und das Bucket gelöscht. Jetzt passt der Speicherverbrauch.
Danke nochmal für die schnelle Hilfe.
-
@jaksa sagte in InfluxDB hoher Speicherverbrauch:
Jetzt passt der Speicherverbrauch.
Na toll! Milliarden Bits sind jetzt arbeitslos. Denkt denn keiner mehr an die Wirtschaft?
-
Hallo,
ich hatte das selbe Problem wie Jaksa. Ich habe auch ein Bucket für iobroker allerdings kein weiteres. Auch bei mir hat sich der Speicherplatz in den letzten 3 Monaten seit Umstieg auf Influx v2 enorm erhöht. Diese Daten wurden auch in einen Ordner mit einer ID (keinen Bucket zuordenbar) in engine/data hinterlegt. Ich habe auch einen Scraper gelöscht. Daraufhin wurden auch keine weiteren Daten mehr gespeichert. Nun habe ich diesen Ordner (über 40 GB) gelöscht. Es funktioniert alles weiterhin prima.
Nun mein Problem. Ich kann kein Backup mehr durchführen. In diesen gelöschten Ordner war ein shard, welches das backup nicht mehr findet.
Error: failed to backup bucket data: failed to download snapshot of shard 2: 500 Internal Server Error: An internal error has occurred - check server logs
Wie kann ich nun erreichen, dass ein backup wieder möglich ist? Wäre prima falls jemand ein Idee hat.
-
@heik sagte in [Gelöst] InfluxDB hoher Speicherverbrauch:
Es funktioniert alles weiterhin prima.
Ich kann kein Backup mehr durchführen.Naja, so ganz "prima" dann wohl doch nicht. Die Idee, einer Datenbank ihre Files unter'm A... wegzulöschen ist niemals ein gute.
Wie kann ich nun erreichen, dass ein backup wieder möglich ist? Wäre prima falls jemand ein Idee hat.
Man könnte jetzt versuchen, mit
influxd inspect ....
irgendetwas zu reparieren, ich glaube aber kaum, dass das zum Erfolg führt.
Aus meiner Sicht würde ich die InfluxDb weglöschen, neu aufsetzen und das Backup zurückspielen.
Vorher könntest du noch ein Gesamtexport machen mit:
influxd inspect export-lp --bucket-id <bucket-id> --output-path ./export.lp --engine-path ./engine --compress
(bucket-id, output-patch und engine-path anpassen)
So könntest du die Daten seit dem letzten erfolgreichen Backup retten.
-
Vielen Dank erst mal für die Hilfe und sorry für die späte Rückantwort. Ich habe erst in den letzten Tagen Zeit gehabt mich damit zu beschäftigen.
Ich hatte ein 30 GB Backup vom 22.09, dass ich nach löschen des aktuellen iobroker buckets wieder eingespielt habe. Nun hatte dieses Bucket eine Größe von 60 GB, was natürlich nicht akzeptabel war. Ich hatte noch eine ältere Influx v1 Sicherung von Mai diesen Jahres, welche ich dann mit 'influxd inspect export-lp' und 'influx write' in einen neuen Bucket eingespielt habe, den restlichen Zeitraum bis zum aktuellen Zeitpunkt habe ich mir aus den 60 GB Bucket ebenfalls mit 'influxd inspect export-lp' und 'influx write' geholt. Nun habe ich ein 4,5 GB bucket und auch das backup funktioniert wieder. Alles nun wirklich wieder prima.