<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[(Gelöst) RAM läuft beim Öffnen der Verlaufsdaten voll]]></title><description><![CDATA[<p dir="auto">Hallo zusammen,</p>
<p dir="auto">ich habe ein reproduzierbares Problem mit InfluxDB bzw. eventuell mit dem InfluxDB-Adapter/Admin und wollte fragen, ob jemand dieses Verhalten ebenfalls kennt oder schon einmal hatte.</p>
<p dir="auto">Mein System:</p>
<p dir="auto">ioBroker-PC: Gigabyte J3455N-D3H<br />
CPU: Intel Celeron J3455<br />
RAM: 16 GB<br />
Betriebssystem: Linux Mint 21.3<br />
InfluxDB: v2.9.1<br />
ioBroker InfluxDB-Adapter: v4.0.2<br />
InfluxDB läuft lokal auf demselben Rechner unter 127.0.0.1:8086</p>
<p dir="auto">Zum Problem:</p>
<p dir="auto">Wenn ich unter Objekte -&gt; Datenpunkt -&gt; InfluxDB -&gt; Verlaufsdaten die Verlaufsdaten eines Datenpunktes öffne, steigt der RAM-Verbrauch von influxd massiv an.</p>
<p dir="auto">In der Verlaufsansicht ist als Zeitraum "letzten 24 Stunden" eingestellt. Trotzdem finde ich anschließend im ioBroker-Log beispielsweise folgende vom Adapter ausgeführte Query:</p>
<p dir="auto">from(bucket: "iobroker")<br />
|&gt; range(start: 1999-12-31T23:00:00.000Z, stop: 2026-08-20T10:31:24.374Z)<br />
|&gt; filter(fn: (r) =&gt; r["_measurement"] == "0_userdata.0.System.CPU_Package_Temp")<br />
|&gt; pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")<br />
|&gt; group()<br />
|&gt; sort(columns:["_time"], desc: false)<br />
|&gt; limit(n: 500)</p>
<p dir="auto">Die Abfrage läuft teilweise in einen Timeout:</p>
<p dir="auto">RequestTimedOutError: Request timed out</p>
<p dir="auto">Auffällig ist insbesondere, dass range() dabei bis 1999 zurückgeht, obwohl in der Verlaufsansicht "letzten 24 Stunden" ausgewählt ist.</p>
<p dir="auto">Ich habe das Verhalten im Terminal beobachtet mit:</p>
<p dir="auto">watch -n 1 'ps -o pid,%cpu,%mem,rss,etime,cmd -C influxd'</p>
<p dir="auto">Gleichzeitig habe ich die InfluxDB-Metriken beobachtet mit:</p>
<p dir="auto">watch -n 1 'curl -s <a href="http://127.0.0.1:8086/metrics" rel="nofollow ugc">http://127.0.0.1:8086/metrics</a> | grep -E "qc_executing_active|qc_queueing_active|qc_memory_unused_bytes"'</p>
<p dir="auto">Während die Verlaufsansicht geöffnet ist, steht:</p>
<p dir="auto">qc_executing_active = 1</p>
<p dir="auto">Das Entscheidende ist:</p>
<p dir="auto">Auch nachdem ich die Verlaufsansicht wieder komplett geschlossen habe, bleibt qc_executing_active = 1.</p>
<p dir="auto">Gleichzeitig steigt der Speicherverbrauch von influxd weiter an.</p>
<p dir="auto">Bei einem Test hatte influxd zunächst etwa 1,4 GB RSS. Nachdem die Verlaufsansicht bereits geschlossen war, stieg der Verbrauch weiter auf etwa 3,6 GB RSS.</p>
<p dir="auto">Bei anderen Versuchen stieg die gesamte RAM-Auslastung des Rechners auf über 70 bis 90 Prozent.</p>
<p dir="auto">Erst ein Neustart von InfluxDB mit</p>
<p dir="auto">sudo systemctl restart influxdb</p>
<p dir="auto">beendet diesen Zustand sofort.</p>
<p dir="auto">Direkt nach einem solchen Neustart hatte influxd beispielsweise nur noch etwa 263 MB RSS.</p>
<p dir="auto">Gleichzeitig zeigten die Metriken:</p>
<p dir="auto">qc_executing_active = 0<br />
qc_queueing_active = 0</p>
<p dir="auto">Bei einem Test fiel die gesamte RAM-Auslastung des Rechners durch den InfluxDB-Neustart von 72 Prozent auf 38 Prozent.</p>
<p dir="auto">Ich habe testweise in /etc/influxdb/config.toml folgende Speicherbegrenzung gesetzt:</p>
<p dir="auto">query-max-memory-bytes = 1073741824</p>
<p dir="auto">InfluxDB startet damit problemlos. Das beschriebene Verhalten wird dadurch aber nicht verhindert.</p>
<p dir="auto">Für mich sieht es momentan so aus, als würde beim Öffnen der Verlaufsdaten eine sehr große Flux-Abfrage angestoßen, die nach dem Schließen der Ansicht serverseitig nicht beendet wird.</p>
<p dir="auto">Ob die Ursache im InfluxDB-Adapter, im Admin oder bei InfluxDB selbst liegt, kann ich nicht beurteilen.</p>
<p dir="auto">Hat jemand dieses Verhalten ebenfalls beobachtet oder eine Idee, warum bei ausgewählten "letzten 24 Stunden" eine Query mit range(start: 1999...) erzeugt wird und diese nach dem Schließen der Verlaufsansicht weiterläuft?</p>
]]></description><link>https://forum.iobroker.net/topic/85203/gelöst-ram-läuft-beim-öffnen-der-verlaufsdaten-voll</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 23:09:16 GMT</lastBuildDate><atom:link href="https://forum.iobroker.net/topic/85203.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Aug 2026 12:17:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to (Gelöst) RAM läuft beim Öffnen der Verlaufsdaten voll on Thu, 20 Aug 2026 20:38:14 GMT]]></title><description><![CDATA[<p dir="auto">Bei mir trat das Problem auf, dass beim Öffnen der Verlaufsdaten eines Datenpunktes im Admin der RAM-Verbrauch massiv anstieg. In einem Fall lief der Arbeitsspeicher bis auf 99 % hoch. Teilweise reagierte InfluxDB anschließend nicht mehr sauber.</p>
<p dir="auto">Als Ursache wurde hier bereits die Abfrage des Admin-Adapters genannt, die zunächst unter anderem den allerersten vorhandenen Wert ermittelt. Bei sehr großen Datenbeständen kann diese Abfrage offenbar entsprechend aufwendig werden. Das Schließen des Fensters beendet eine bereits laufende Query zudem nicht.</p>
<p dir="auto">Ich habe das Problem deshalb auf der Seite der Datenhaltung entschärft.</p>
<p dir="auto">Bisher wurden bei mir sehr viele Datenpunkte gemeinsam in einer InfluxDB-Instanz gespeichert, teilweise mit wesentlich längerer Historie, als ich tatsächlich benötige.</p>
<p dir="auto">Ich habe die Daten jetzt auf zwei InfluxDB-Instanzen mit getrennten Buckets aufgeteilt:</p>
<p dir="auto">influxdb.0: Kurzzeitdaten, Vorhaltezeit 3 Tage<br />
influxdb.1: Langzeitdaten, Vorhaltezeit 3 Monate</p>
<p dir="auto">Die große Mehrheit meiner Datenpunkte benötige ich lediglich für aktuelle Grafana-Diagramme und Analysen. Dafür reichen 3 Tage vollkommen aus. Nur ausgewählte Datenpunkte, beispielsweise bestimmte Laufbandwerte, Anwesenheitsdaten und Meross-Störungszähler, benötigen eine längere Historie und wurden deshalb auf influxdb.1 umgestellt.</p>
<p dir="auto">Zusätzlich habe ich den alten Datenbestand im bisherigen Bucket konsequent bereinigt. Da ich die Langzeithistorie bewusst neu beginnen wollte, wurden die nicht mehr benötigten alten Daten gelöscht.</p>
<p dir="auto">Ergebnis:</p>
<p dir="auto">Vor der Bereinigung konnte das Öffnen der Verlaufsdaten den RAM bis auf 99 % treiben.</p>
<p dir="auto">Nach der Aufteilung und Bereinigung habe ich gezielt mehrere Verlaufsansichten geöffnet – darunter auch genau den Datenpunkt, bei dem der RAM vorher vollgelaufen war.</p>
<p dir="auto">Der RAM blieb dabei bei etwa 39 % und zeigte praktisch keine Reaktion mehr.</p>
<p dir="auto">Das Laden bzw. Öffnen kann im Admin weiterhin relativ lange dauern. Die problematische Abfragelogik des Admin-Adapters ist durch diese Maßnahme schließlich nicht verändert worden. Aber der massive RAM-Anstieg ist bei mir nach der Reduzierung der abzufragenden Datenmenge nicht mehr aufgetreten.</p>
<p dir="auto">Für mich war die entscheidende Erkenntnis daher:</p>
<p dir="auto">Nicht jeden Influx-Datenpunkt jahrelang aufbewahren, nur weil es möglich ist. Die Daten nach tatsächlich benötigter Historienlänge aufzuteilen, hat das Problem bei mir praktisch beseitigt.</p>
<p dir="auto">Zusätzlich habe ich mir per JavaScript eine Systemanalyse erstellt, die alle für influxdb.0 und influxdb.1 aktivierten Datenpunkte auflistet. Das war beim Aufräumen und bei der Kontrolle der Zuordnung eine große Hilfe.  Besten dank an Marc Berg.</p>
]]></description><link>https://forum.iobroker.net/post/1352049</link><guid isPermaLink="true">https://forum.iobroker.net/post/1352049</guid><dc:creator><![CDATA[andiko2]]></dc:creator><pubDate>Thu, 20 Aug 2026 20:38:14 GMT</pubDate></item><item><title><![CDATA[Reply to (Gelöst) RAM läuft beim Öffnen der Verlaufsdaten voll on Thu, 20 Aug 2026 15:19:26 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/marc-berg" aria-label="Profile: Marc-Berg">@<bdi>Marc-Berg</bdi></a> ok danke, dann schaue ich mir das mal in Ruhe an</p>
]]></description><link>https://forum.iobroker.net/post/1352013</link><guid isPermaLink="true">https://forum.iobroker.net/post/1352013</guid><dc:creator><![CDATA[andiko2]]></dc:creator><pubDate>Thu, 20 Aug 2026 15:19:26 GMT</pubDate></item><item><title><![CDATA[Reply to (Gelöst) RAM läuft beim Öffnen der Verlaufsdaten voll on Thu, 20 Aug 2026 14:45:49 GMT]]></title><description><![CDATA[<p dir="auto">Der Fehler kommt aus dem Admin Adapter und ist hiermit kommentiert:</p>
<p dir="auto">// this is a code that makes problems. It is no good idea doing this!</p>
<p dir="auto"><img src="https://forum.iobroker.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f937.png?v=ba16ebd4856" class="not-responsive emoji emoji-android emoji--shrug" style="height:23px;width:auto;vertical-align:middle" title=":shrug:" alt="🤷" /></p>
<p dir="auto">Hintergrund ist, dass zunächst der allererste Wert ermittelt werden soll, um eine saubere Darstellung in den Charts auch an den "Rändern" zu ermöglichen. Außerdem erfolgt auch noch eine Typprüfung mit dem Datum ab 01.01.2000 0:00 Uhr local time. Nach diesen zwei Abfragen kommt erst die eigentliche Abfrage mit den korrekten Daten.</p>
<p dir="auto">Wenn in diesem Zeitraum zu viele Daten liegen, dann führt das zu den beschriebenen Problemen. Ein Schließen des Fensters bricht die langlaufende Query nicht ab.</p>
<p dir="auto">An deiner Stelle würde ich mal prüfen, ob die Daten konsolidiert werden können.</p>
]]></description><link>https://forum.iobroker.net/post/1352005</link><guid isPermaLink="true">https://forum.iobroker.net/post/1352005</guid><dc:creator><![CDATA[Marc Berg]]></dc:creator><pubDate>Thu, 20 Aug 2026 14:45:49 GMT</pubDate></item><item><title><![CDATA[Reply to (Gelöst) RAM läuft beim Öffnen der Verlaufsdaten voll on Thu, 20 Aug 2026 13:04:45 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/andiko2" aria-label="Profile: andiko2">@<bdi>andiko2</bdi></a></p>
<p dir="auto">Hm wenn du die query nicht selbst erstellt hast, dann musst du ggfs ein issue auf github beim influx Adapter erstellen.</p>
]]></description><link>https://forum.iobroker.net/post/1351998</link><guid isPermaLink="true">https://forum.iobroker.net/post/1351998</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Thu, 20 Aug 2026 13:04:45 GMT</pubDate></item><item><title><![CDATA[Reply to (Gelöst) RAM läuft beim Öffnen der Verlaufsdaten voll on Thu, 20 Aug 2026 13:03:10 GMT]]></title><description><![CDATA[<p dir="auto">Das mit großen Abfragen und dem hohen RAM-Bedarf kann ich grundsätzlich nachvollziehen.</p>
<p dir="auto">Ein Punkt passt bei mir allerdings nicht ganz zu der Vermutung mit den temporären Dateien:</p>
<p dir="auto">Solange die problematische Abfrage läuft, steigt der RAM von influxd immer weiter. Auch nachdem ich die Verlaufsansicht in ioBroker geschlossen habe, bleibt qc_executing_active auf 1 und der RAM steigt weiter.</p>
<p dir="auto">Nach einem Neustart von InfluxDB fällt der Speicher dagegen sofort wieder auf einen normalen Wert zurück. Beim letzten Test waren es danach nur noch ca. 263 MB und qc_executing_active stand sofort auf 0.</p>
<p dir="auto">Der entscheidende Punkt ist aber: Ich kann die Query selbst nicht optimieren.</p>
<p dir="auto">Die Query wird automatisch von ioBroker bzw. dem InfluxDB-Adapter erzeugt, wenn ich bei einem Datenpunkt die Verlaufsdaten öffne. In dieser Ansicht habe ich "letzten 24 Stunden" ausgewählt.</p>
<p dir="auto">Trotzdem erzeugt der Adapter eine Query mit:</p>
<p dir="auto">range(start: 1999-12-31...)</p>
<p dir="auto">Genau deshalb versuche ich herauszufinden, warum die automatische Abfrage diesen riesigen Zeitraum verwendet. Wenn ich die Query selbst schreiben würde, wäre range(start: -24h) natürlich die naheliegende Lösung.</p>
]]></description><link>https://forum.iobroker.net/post/1351997</link><guid isPermaLink="true">https://forum.iobroker.net/post/1351997</guid><dc:creator><![CDATA[andiko2]]></dc:creator><pubDate>Thu, 20 Aug 2026 13:03:10 GMT</pubDate></item><item><title><![CDATA[Reply to (Gelöst) RAM läuft beim Öffnen der Verlaufsdaten voll on Thu, 20 Aug 2026 13:02:19 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/andiko2" aria-label="Profile: andiko2">@<bdi>andiko2</bdi></a></p>
<p dir="auto">Wie gesagt, bin kein influx Spezialist.<br />
Datenbank legen bei großen Abfragen gerne temporäre Dateien an.<br />
Deine Datei besteht aus verschiedenen datenoperationen (group,pivot,sort). Bei großen Mengen wird sowas aus dem ram ausgelagert. Datenbanken sind nur schnell,wenn die Daten oder indizies im ram liegen und sie wissen wie man schnell auf der Festplatte zugreifen kann.<br />
Daher haben große Datenbanksysteme immer viel ram.<br />
Gefürchtet war früher/heute immer die sogenannten Full table scans, also die Datenbank muss wirklich alles physisch lesen.</p>
<p dir="auto">Eine Vermutung bei dir nach Neustart: influx findet die temporären Dateien und räumt sie in einem niedrig priorisierten Prozess auf. Ggfs müsste sich das nach einer Weile normalisieren.</p>
<p dir="auto">Optimiere deine query dann passt auch die Abfrage der Daten</p>
<p dir="auto">Hm, hatte ich oben eigentlich schon geschrieben</p>
<blockquote>
<p dir="auto">Die Frage ist für mich daher, warum ioBroker bei der automatisch erzeugten Query trotz der Einstellung "letzten 24 Stunden" bis 1999 zurückgeht</p>
</blockquote>
<p dir="auto">Zunächst wird die query ausgeführt, die ja bis 1999 zurückgeht. Diese Daten werden dann zurückgegeben. Wenn das viele Daten sind werden die dann im Adapter nochmal verarbeitet und wahrscheinlich die meisten dort weggeschmissen, weil dort erst die letzte Filterung auf 24h durchgeführt werden.<br />
UU hast du da temporär die große Datenmenge 2x im Speicher. Einmal influx und dann noch im iobroker.<br />
Der influx Adapter ist nur ein Vermittler zu influx, mit ein wenig Logikverarbeitung</p>
]]></description><link>https://forum.iobroker.net/post/1351996</link><guid isPermaLink="true">https://forum.iobroker.net/post/1351996</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Thu, 20 Aug 2026 13:02:19 GMT</pubDate></item><item><title><![CDATA[Reply to (Gelöst) RAM läuft beim Öffnen der Verlaufsdaten voll on Thu, 20 Aug 2026 12:47:45 GMT]]></title><description><![CDATA[<p dir="auto">Ja, range(start: -24h) wäre für meinen Anwendungsfall genau das, was ich erwarten würde.</p>
<p dir="auto">Das Problem ist nur: Die Query habe ich nicht selbst erstellt.</p>
<p dir="auto">Sie wird automatisch erzeugt, wenn ich in ioBroker bei einem Datenpunkt die Verlaufsdaten über die InfluxDB-Instanz öffne. Dort habe ich als Zeitraum ausdrücklich "letzten 24 Stunden" ausgewählt.</p>
<p dir="auto">Ich kann an dieser Stelle also nicht selbst range(start: -24h) in die Query schreiben.</p>
<p dir="auto">Genau deshalb wundert mich, dass der Adapter bzw. die Verlaufsansicht daraus eine Query mit</p>
<p dir="auto">range(start: 1999-12-31...)</p>
<p dir="auto">erzeugt.</p>
<p dir="auto">Wenn die Auswahl "letzten 24 Stunden" korrekt an InfluxDB übergeben würde, hätte ich ebenfalls erwartet, dass dort sinngemäß range(start: -24h) bzw. ein entsprechender berechneter Startzeitpunkt verwendet wird.</p>
<p dir="auto">Die Frage ist für mich daher, warum ioBroker bei der automatisch erzeugten Query trotz der Einstellung "letzten 24 Stunden" bis 1999 zurückgeht.</p>
]]></description><link>https://forum.iobroker.net/post/1351995</link><guid isPermaLink="true">https://forum.iobroker.net/post/1351995</guid><dc:creator><![CDATA[andiko2]]></dc:creator><pubDate>Thu, 20 Aug 2026 12:47:45 GMT</pubDate></item><item><title><![CDATA[Reply to (Gelöst) RAM läuft beim Öffnen der Verlaufsdaten voll on Thu, 20 Aug 2026 12:42:34 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/andiko2" aria-label="Profile: andiko2">@<bdi>andiko2</bdi></a></p>
<p dir="auto">Bin in influx nicht so drin, aber</p>
<ul>
<li>in deiner query steht ja 1999 drin</li>
<li>queries werden squenziell ausgeführt, d.h. Die Filterung auf die letzten 24h wird erst ausgeführt wen die subquery ausgeführt wurde.</li>
</ul>
<p dir="auto">Also</p>
<p dir="auto">range(start: -24h)</p>
<p dir="auto">Bis zum aktuellen Zeitpunkt.<br />
Wen der end Zeitpunkt beliebig in der Vergangenheit liegen soll musst du start und end selbst berechnen.</p>
]]></description><link>https://forum.iobroker.net/post/1351994</link><guid isPermaLink="true">https://forum.iobroker.net/post/1351994</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Thu, 20 Aug 2026 12:42:34 GMT</pubDate></item></channel></rss>