Uso de la RAM de Gladys

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

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:

¡Hola a todos!

Retomo este tema que había pasado al olvido, no había ninguna issue en Github :sweat_smile:

He trabajado esta mañana en el reemplazo de la librería ffmpeg-fluent que está claramente desactualizada y que es probablemente la causa de esta fuga de memoria.

La reemplazo por un simple child_process que, por lo tanto, liberará la memoria una vez que se obtenga la imagen de la cámara.

La PR está aquí:

Disculpas de nuevo por el retraso, no duden en recordarme sobre temas como este si no hay actividad, y sobre todo piensen en crear una issue en Github (Issues · GladysAssistant/Gladys · GitHub), es la « TODO list » de errores a corregir del proyecto :slight_smile:

Y en el caso de que la imagen nunca se recupere, ¿cómo se comporta?
De mis recuerdos, era otra causa de mi problema, fuga de memoria cuando la cámara ya no está disponible.

El comando se timeoute después de 10 segundos sin respuesta, y luego el child_process es asesinado, por lo que no hay fugas de memoria :slight_smile:

Este tema ha pasado a Gladys Assistant 4.47.0 :slight_smile:

¡Me encantaría conocer sus comentarios después de la actualización, especialmente los tuyos, @spenceur!

@spenceur ¿Has podido vigilar un poco tu uso de RAM desde la 4.47?

No lo siento, claramente no he tenido tiempo ^^