Sauvegarde : plus d'accès à la page web et taille de la base énorme

Bonsoir à tous,

J’ai lancé un backup manuel hier soir à 23h36, et 1h20 plus tard, je n’ai toujours pas la main. La machine est extrêmement lente, les accès web n’aboutissent plus. Impossible d’accéder à la page santé ou aux logs, ça mouline à l’infini ! Pourtant on a l’impression que la tâche est finie :

En ssh, htop me donne ça (mysql « en tête » avec des charges cpu à 260% …) :

Je crains un souci de base, d’autant qu’en vérifiant un backup, je découvre qu’elle pèse 22 Go !!!

Je laisse tourner cette nuit, je redémarrerai la VM Jedom demain si problème.

Quelles sont vos recommandations svp :

Merci d’avance.

J’irai déjà m’assurer que c’est bien la table history-arch qui pose pb en allant dans la gestion de la bd puis taille des tables.

Si c’est history-arch, analyse des archives avec mon tuto.
Tu trouveras sans doute quelques commandes qui t’explosent la base.

Norbert

Bonjour
22go de base c’est un record je pense. Dans l’administration de la base de données jeedom a un bouton pour voir la taille de chaque table. Regarde déjà ça.

Bonne nouvelle ! Même si Jeedom est lent, la sauvegarde s’est terminée, et j’ai pu reprendre la main.

Le coupable est bien historyArch … :scream:

Je teste le tuto de @ngrataloup
A suivre…

[EDIT]
Loïc,
Que penses-tu d’ajouter la taille de la base à la page santé (sous « Version database ») ?
→ Cela permettrait de garder un oeil sur sa taille et de vous simplifier les diags.

@ngrataloup
J’ai lancé ton code depuis une quinzaine de minutes :

image

Là le log est vide, mais je suppose qu’il est rempli en fin de scénario.
As-tu une idée du temps (approximatif) que cela va prendre (vu la taille de la base) ?

Juste pour info, scénario finalisé. A tourné pendant 1h20 environ.

1 « J'aime »

Et du coup, tu as trouvé des choses ?
As tu regarder d’abord si le PB est sur la table history-arch ?

Oui → HistoryArch à 669 MILLIONS de lignes :scream:

Etape 1 :

  • Via Système/Configuration/Equipements - > purge pour ne garder que 2 ans.
  • Via le moteur des tâches → j’ai forcé history:archive.
    → En cours depuis 12h30, cela risque de durer plusieurs heures…

Etape 2 :

  • J"ai prévu de relancer ton outil pour affiner tout ça.

nb : je détaille volontairement les manips car cela peut servir à d’autres, et je posterai les résultats.

@Loic
En plus d’ajouter la taille de la base dans la page santé, pourquoi ne pas mettre le nombre de lignes de HistoryArch. Je suis certain qu’on est pas mal à mal gérer cette partie, et cela vous faciliterait l’analyse. C’est juste une idée en passant.

Bonjour
C’est pas vraiment sa place en plus faudrait mettre toute les tables. J’ai bien prévu un jour d’améliorer la page santé avec des onglets et des infos comme l’espace disque par dossier les services Linux et autre mais c’est loin d’être la priorité.

En plus ton soucis est peut être dû à un bug de la tâche d’archivage que j’ai corrigé ce matin et qui sera disponible en 4.4.10.

1 « J'aime »

Je pensais juste à cette table à cour terme, car elle semble la plus sensible au remplissage. Mais pas de souci.

Du coup, tu penses afficher quand même la taille de la base (en plus de sa version), ou pas ?

Ah ça c’est une bonne nouvelle, cela me rassure pour la suite :+1:

Faut je regarde pour la taille de la base le temps que le calcul prends (pour la table non chez toi elle a posé soucis mais chez d’autre en fonction des plugins ça peut être d’autre table).

À voir ce que je fais. La de toute façon j’ai quelques dizaine de pr en attente de validation jeedom tant que c’est pas passé je peux plus bosser sinon les merges vont être horrible (déjà que là ça risque de m’occuper pas mal d’heures)

Je comprends, pas de problème.
C’est juste une piste d’amélioration, à garder dans un coin pour plus tard.

Pour ma part, je suis assez d’accord sur le fait qu’une bd trop grosse est un signe de PB de paramétrage. Avoir la taille de la bd (juste la taille) est déjà un premier point d’alerte.
Allez plus loin dans la page santé me semble plus difficile. Après, il faut creuser

Norbert

Oui oui c’est une bonne idée et dès que les pr en cours seront mergé j’en ferais un pour ça bien évidemment

3 « J'aime »

Il y a un truc qui m’échappe… J’ai lancé les actions ci-dessous hier, et ce matin quand je vérifie, la purge semble ne pas avoir eu lieu :

Forcer history:archive dans le moteur de tâches n’est pas la bonne façon de faire ?

Par contre je viens de perdre la main de l’interface web.
SQLSTATE[HY000] [1040] Too many connections

Je ne comprends pas ce qui se passe, il y a 15 mn tout était fluide. Je n’ai lancé aucun traitement et Jeedom sature tous les cores :

Je ne sais pas si c’est lié à la base. Vous me conseillez de redémarrer ou d’attendre ?

La y’a des truc bizarre déjà systemd qui bouffe tout jamais vu et Mqtt aussi. Tu auras pas un module sur Mqtt qui envoi trop de données.

Il y a une communication Jeedom <> CerboGX (panneaux solaires) toutes les secondes (plugin mymodbus). Bizarre car cela tourne depuis des mois sans souci.

Je vais redémarrer pour voir…
Du coup peux-tu me dire comment forcer la purge ?

EDIT - Pour info après redémarrage c’est OK pour l’instant :

Tu peux pas forcer une purge faut juste régler la commande correctement et attendre 24h. Normalement ça marche sauf si tu as le bug de la purge qui lui sera réglé en 4.4.10. Après la tu nous a pas redonner la taille de la table donc sans ça difficile d’aider plus.

Tu a quand même un PB sur table history … 520MB, 6M de lignes. Commence déjà par régler correctement tes historiques sur les commandes, cf les commandes remontées par mon tuto.
Regarde aussi si tu n’as de pbs d’archivage (des données vielles de.plus de 1 jour dans History

Norbert