Gladys utilisation de la ram

Yes il y a clairement un souci, à mon avis:

  • soit un bug ffmpeg introduit dans une version récente de ffmpeg
  • soir un changement dans l’API de ffmpeg qu’on a pas intégré dans Gladys
  • soit un changement dans Node 18 dans la gestion des child process

Il faut enquêter, j’ai pas encore eu le temps de mon côté, preneur d’aide sur le sujet :slight_smile:

Edit: Pour info on utilise cette lib dans Gladys:

Après en voyant toutes les issues remontées (295 issues), et le fait que la lib n’est plus trop maintenue, pour ce que ça fait on ferait mieux de juste lancer ffmpeg nous même via un child process Node pour pouvoir le fermer proprement

Ca à la base c’est une feature (et pas un bug)

L’intérêt c’est d’avoir tout le temps une image fraîche en mémoire afin que si tu ouvre le tableau de bord, tu ai directement une image fraîche servi depuis la memoire, et pas de délai à attendre le temps qu’une nouvelle image soit récupérée

1 « J'aime »

Ce qui est en soit une bonne idée, mais l’impact CPU est assez fort. Je n’imagine pas si on connecte 5 caméras ou plus dans Gladys.
Chez moi (mini-pc) je suis passé de 6% en moyenne à 50% voir 70% (Image toutes les 10 secondes).

Pour économiser en perf, Gladys pourrait mettre à jour en arrière plan, mais toutes les minutes tant qu’un dashboard n’est pas chargé ?
Enfin, c’est un détail ici, vu l’autre bug bien plus important !

le problème de perf c’est déjà du background, ffmpeg est executé par le serveur.

C’est le but de ce paramètre « 1 minutes/30 secondes/10 secondes » etc… à la base :slight_smile:

Là vous utilisez ce paramètres pour créer un faux semblant de live sur le dashboard, mais bon c’est trop gourmand car c’est pas vraiment fait pour ça ^^

Pour le live sur le tableau de bord, je suis d’accord que c’est une évolution sympa à apporter et à développer proprement :slight_smile:

2 « J'aime »

Salut à tous !

Je reprend ce sujet qui était passé aux oubliettes, il n’y avait pas d’issue Github :sweat_smile:

J’ai travaillé ce matin sur le remplacement de la librairie ffmpeg-fluent qui est clairement outdated et qui est la probable cause de cette fuite mémoire.

Je remplace par un simple child_process qui du coup partira bien de la mémoire une fois que l’image de caméra est récupérée.

La PR est là :

Encore désolé pour le retard, n’hésitez vraiment pas à me relancer sur des sujets comme ça si jamais il n’y a pas d’activité, et surtout pensez à créer une issue Github (Issues · GladysAssistant/Gladys · GitHub), c’est la « TODO list » de bug à corriger du projet :slight_smile:

2 « J'aime »

Et dans le cas où l’image n’est jamais récupérée, ça se comporte comment ?
De mes souvenirs c’était une autre cause de mon problème, fuite de mémoire quand la caméra n’est plus dispo.

Le commande timeout au bout de 10 secondes sans réponse, et ensuite le child_process est tué, donc plus de fuite de mémoire :slight_smile:

1 « J'aime »

Ce sujet est parti dans Gladys Assistant 4.47.0 :slight_smile:

Je serais curieux d’avoir vos retours suite à la mise à jour, notamment @spenceur !

@spenceur Est-ce que tu as pu surveiller un peu ton usage RAM depuis la 4.47 ?

Non desole jai clairement pas eu le temps ^^

1 « J'aime »