# Leistungsproblem im Dashboard mit vielen Grafiken

**URL:** <https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522>\
**Category:** Configuration\
**Created:** [11. September 2022 um 18:27 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522 "2022-09-11T18:27:48Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [15. September 2022 um 14:01 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/21 "2022-09-15T14:01:23Z")

</div>

Hallo @lmilcent!

Abgesehen davon, direkt in die Datenbank zu greifen, habe ich keinen besonderen Tipp 🙂 Nimmt das wirklich zu viel Zeit auf deinem Pi in Anspruch?

Du kannst ein Programm wie TablePlus auf deinem PC verwenden, um eine saubere Schnittstelle für deine Datenbank zu haben.

Denke daran, Gladys zu stoppen, bevor du deine neue Datenbank abrufst/erneut einspielst.

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [15. September 2022 um 14:31 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/22 "2022-09-15T14:31:52Z")

</div>

> [@pierre-gilles](#):
>
> Denke daran, Gladys vor dem Abrufen/Einfügen deiner neuen DB zu stoppen

Ja, ich habe festgestellt, dass die Datenbank sonst beschädigt wird.

> [@pierre-gilles](#):
>
> Abgesehen vom direkten Zugriff auf die DB habe ich keinen besonderen Tipp 🙂 Braucht das wirklich so lange auf deinem Pi?

Ja, ich bestätige dir, dass es seit über 12 Stunden läuft, für die Löschung einer einzigen Funktion. Aber ich weiß, dass das mit zwei Dingen zusammenhängt: einer 8-GB-Datenbank und einem RPi mit einer SD-Karte und keinem SSD.

Falls du es zur Hand hast, kannst du mir bitte sagen, wie ich:

1. Features nach Geräten auflisten
2. Daten einer Funktion löschen (und ich würde anschließend deren Speicherung in der Oberfläche deaktivieren)

Ansonsten werde ich im Quellcode suchen 😅😅

Danke 🙂

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [15. September 2022 um 14:36 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/23 "2022-09-15T14:36:12Z")

</div>

Hier ist es:

> [@Hilfe! Problem mit der Aggregation?](https://community.gladysassistant.com/t/help-probleme-avec-lagregation/6630/56?u=pierre-gilles):
>
> @lmilcent Hop c’est cadeau: SELECT COUNT(t\_device\_feature\_state.id), device\_feature\_id, t\_device\_feature.name as feature\_name, t\_device.name as device\_name FROM t\_device\_feature\_state JOIN t\_device\_feature ON t\_device\_feature.id = device\_feature\_id JOIN t\_device ON t\_device.id = t\_device\_feature.device\_id GROUP BY device\_feature\_id ORDER BY COUNT(t\_device\_feature\_state.id) DESC;

Danach, um die Zustände einer Funktion zu löschen:

```sql
DELETE FROM t_device_feature_state WHERE device_feature_id = 'cca3209-8d8f-4965-b658-bdb28eb31300';
DELETE FROM t_device_feature_state_aggregate WHERE device_feature_id = 'cca3209-8d8f-4965-b658-bdb28eb31300';

```

Am Ende nicht vergessen:

```auto
VACUUM;

```

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [15. September 2022 um 14:38 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/24 "2022-09-15T14:38:01Z")

</div>

Danke, ich wusste, dass du die Arbeit für mich schon mindestens einmal erledigt hast​😂  
Entschuldige die doppelte Anfrage, und nochmals danke!!

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [17. September 2022 um 11:21 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/25 "2022-09-17T11:21:37Z")

</div>

Ergebnisse in Bildern: Eine um 50% reduzierte Größe 🎉

 ![Screenshot_20220917-092925_JuiceSSH __01__ 01](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/2/20f4d867623bd461e5f871b0452c762794afa633.png)

Meine Datenbank ist jetzt 3,8 GB groß, zuvor waren es über 8 GB!

Bei den Backups (persönlich) merkt man das:

 ![Screenshot_20220917-095232_Telegram__01](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/2/28150bbf2fe99ecff57beec350391f702eff45da.jpeg)

---

<div class="post-metadata">

**Author:** ![Checconio](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/checconio/32/19810_2.png) [@Checconio](https://community.gladysassistant.com/u/Checconio)\
**Post date:** [17. September 2022 um 15:30 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/26 "2022-09-17T15:30:07Z")

</div>

Das ist super, ich habe auch meine Datenbank um 1,6 GB reduziert und es ist toll, dass die Dashboards sofort geladen werden! 😃

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [19. September 2022 um 08:12 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/27 "2022-09-19T08:12:31Z")

</div>

Das freut mich zu lesen 😃

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [19. September 2022 um 08:48 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/28 "2022-09-19T08:48:23Z")

</div>

Man könnte auch die Standorttabelle bereinigen, wir haben die gesamte Standorthistorie, aber die bringt doch nichts, oder?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [19. September 2022 um 11:34 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/29 "2022-09-19T11:34:10Z")

</div>

In Gladys 3 gab es eine Funktion, mit der man den Verlauf der Bewegungen sehen konnte, das fand ich praktisch 🙂

Ist diese Tabelle bei dir wirklich so groß?

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [19. September 2022 um 11:36 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/30 "2022-09-19T11:36:26Z")

</div>

Ich hatte es vor einigen Wochen sauber, ich habe es heute Morgen gemacht (ca. 60.000 Zeilen).

Ich sehe keinen Anwendungsfall für den Standortverlauf.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [19. September 2022 um 12:25 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/31 "2022-09-19T12:25:37Z")

</div>

Ok, 60.000 Zeilen sind doch nichts 🙂 Wir können später eine Aufgabe einrichten, um den Verlauf zu leeren (ein bisschen wie bei den States: letzte 6 Monate, letztes Jahr, etc.)

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [20. September 2022 um 11:38 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/32 "2022-09-20T11:38:02Z")

</div>

Super, die Datenbank wurde auch bei mir reduziert und das merkt man bei der Anzeige der Diagramme.😀

Allerdings habe ich jetzt ein Problem bei jeder Änderung eines Geräts, zum Beispiel seines Namens, wodurch Gladys für mehrere Minuten blockiert wird. (einfach 10 bis 15 Minuten)😥

Ist das normal?

Ich könnte mehr Details geben und Tests durchführen, aber abends, falls nötig.

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [20. September 2022 um 18:44 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/33 "2022-09-20T18:44:52Z")

</div>

Ich habe also einen Versuch unternommen, um eine Funktion zu einem MQTT-Gerät hinzuzufügen.

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/6/62f409ae9a09f2408b40b061b81d23ec0f2f0fe4.png)

Ich musste etwa 22 Minuten warten, bis die Seite nach dem Speichern angezeigt wurde

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/a/acfc4cbb120deb84cca21a1a2f83bb2a1c7b0d44.jpeg)

---

<div class="post-metadata">

**Author:** ![Checconio](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/checconio/32/19810_2.png) [@Checconio](https://community.gladysassistant.com/u/Checconio)\
**Post date:** [20. September 2022 um 19:59 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/34 "2022-09-20T19:59:12Z")

</div>

Ich bestätige, dass ich denselben Fehler habe.  
Wenn ich meine MQTT-Geräte ändere, dauert es jedes Mal sehr lange, bis eine Fehlermeldung angezeigt wird.

Ich muss die Gladys-Instanz neu starten, damit es wieder funktioniert, aber die Änderung wird übernommen.

---

<div class="post-metadata">

**Author:** ![Tlse-vins](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/tlse-vins/32/6054_2.png) [@Tlse-vins](https://community.gladysassistant.com/u/Tlse-vins)\
**Post date:** [21. September 2022 um 09:10 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/35 "2022-09-21T09:10:08Z")

</div>

Ich bin auf das gleiche Problem gestoßen, als ich die Gerätehistorie gelöscht habe.

Ich hatte keine Zeit, die Information weiterzugeben.

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [21. September 2022 um 12:03 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/36 "2022-09-21T12:03:28Z")

</div>

Gleiches Problem bei mir.

@pierre-gilles ich weiß nicht, ob das der Fall ist, aber es sieht wirklich so aus, als ob entweder die Datenbank oder Gladys in diesem Moment im Blockiermodus ist.  
Denn wirklich nichts reagiert mehr. Also entweder liege ich total falsch (das wäre nicht das erste Mal 😅), oder es gibt etwas zu tun, um diesen Teil etwas zu optimieren.

Auf meiner Seite sehe ich einen Prozess `node index.js` bei 100% der **CPU** , während das Schreiben auf die SD-Karte meines Raspberry Pi nicht bei 100% der I/O zu sein scheint.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [21. September 2022 um 12:34 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/37 "2022-09-21T12:34:09Z")

</div>

Hallo zusammen!

Wenn ihr ein Gerät registriert, macht Gladys zwei Dinge:

- Wenn bestimmte Features im Historienmodus deaktiviert sind, löscht Gladys alle Zustände dieser Features. Das kann potenziell Millionen von Zeilen in einigen Datenbanken bedeuten, was die DB während der Löschung für eine Weile blockieren kann.
- Danach führt Gladys einen VACUUM aus, einen Vorgang, der die Daten «&nbsp;wirklich&nbsp;» vom Datenträger löscht und Speicherplatz freigibt. VACUUM ist ein blockierender Vorgang, und während des gesamten VACUUM ist die DB, und damit Gladys, nicht zugänglich. Bei kleinen DBs ist das nicht sichtbar, bei großen DBs kann es 20 Minuten dauern und man hat den Eindruck, dass es «&nbsp;kaputt&nbsp;» ist, obwohl es nur arbeitet!

**Die Lösung, die ich sehe:**

- Eine Hintergrundaufgabe zum Löschen von Zuständen programmieren, die in kleinen Batches löscht, damit Gladys nicht blockiert wird, wenn Features mit Millionen von Zuständen gelöscht werden. Es müssen Tests durchgeführt und die richtige Zahl gefunden werden, damit es weder zu blockierend noch zu langsam ist.
- Den sofortigen VACUUM entfernen und eine geplante nächtliche VACUUM-Aufgabe einrichten, die aktiviert/deaktiviert werden kann (z. B. alle zwei Wochen).

Der Nachteil all dessen ist, dass die «&nbsp;Speicherplatzfreigabe&nbsp;» nicht mehr sofort erfolgt. Nach einer Zustandslöschung muss man bis zur nächsten Nacht oder bis zu einer Woche warten, bis Gladys sich selbst löscht. Eventuell kann man irgendwo einen Knopf einrichten, um manuell zu löschen, aber der Benutzer muss sich bewusst sein, dass Gladys während der gesamten Löschzeit nicht verfügbar ist.

Ich habe aber eine ziemlich volle Woche, also denke ich nicht, dass ich in den nächsten Tagen einen Blick darauf werfen kann. Ich werde es entweder am Wochenende oder im Laufe der nächsten Woche tun! Ich halte euch auf dem Laufenden 🙂

---

<div class="post-metadata">

**Author:** ![Checconio](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/checconio/32/19810_2.png) [@Checconio](https://community.gladysassistant.com/u/Checconio)\
**Post date:** [21. September 2022 um 12:40 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/38 "2022-09-21T12:40:10Z")

</div>

Kein Problem!

Ich denke nicht, dass es dringend ist, da nichts kaputt ist und es nur passiert, wenn man den Verlauf löscht 🙂

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [21. September 2022 um 13:02 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/39 "2022-09-21T13:02:36Z")

</div>

Danke für die Analyse!

Aber 20 Minuten für eine kleine Namensänderung zum Beispiel ist sehr lang. Das ist sehr blockierend, sogar etwas ärgerlich, auch wenn wir wissen, dass Gladys nicht kaputt ist und im Hintergrund arbeitet.

Meiner Meinung nach kann die Reinigung später erfolgen, wie du vorschlägst. Und vom Benutzer aktivierbar/deaktivierbar wäre gut.

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [21. September 2022 um 13:03 UTC](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522/40 "2022-09-21T13:03:14Z")

</div>

Danke für die Details, jetzt verstehe ich besser, warum wir alle das Gefühl haben, dass es blockiert.  
Ich bin für die Lösung mit dem VACUUM nachts (z. B. zwischen 2 und 4 Uhr morgens).  
Welcher Nutzer wird sich wirklich um die Größe seiner DB kümmern, wenn es nur ein paar Stunden später ist?

[Vorherige Seite](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522.md?page=1)

[Nächste Seite](https://community.gladysassistant.com/t/probleme-de-performance-sur-dashboard-avec-beaucoup-de-graphiques/7522.md?page=3)
