Surconsommation mémoire d'un scénario, comment l'identifier?

Bonjour

j’ai un soucis de consommation mémoire qui monte en flèche tous les jours et m’oblige à rebooter au moins une fois par jour.

Voici ce que j’observe

 SIZE     PID USER     COMMAND
2408000 14210 www-data php /var/www/html/core/class/../php/jeeScenarioExpression.php key=scenarioElement20614::a1WgJoqiwQHHy80h::1761696920

et la courbe de la conso mémoire des scénarios :

Comment faire pour trouver le scénario qui serait à l’origine de mon soucis (et que j’ai probablement mal programmé) ?

Merci !

Bonjour

Désactiver un à un les scénarios en commençant par ceux qui serait avec lancement multiples et/ou avec un cron toutes les minutes.
Vérifiez aussi dans le moteur de tâches.

Antoine

Bonjour
Perso je vois pas comment un scénario pourrait utiliser 2 go de mémoire vive !
Mais pas expert…
Ça ne pourrait pas être plutôt un plugin ?
Un nouveau installé / mise à jour avant ce changement de comportement ?

Pour moi il y a une commande toute faite pour cela :
Réglages / système / configuration / >_OS / DB / Administration système → ouvrir
Cliquer sur « Memory Usage »

Pas mal de post sur l’utilisation de mémoire, sur le forum te donnera d’autres commandes à taper au même endroit

Bonjour

Voir s’il y a des mises à jour système à réaliser.
Je constate un effet positif sur ma machine de dev après cette mise à jour

Quelques infos complémentaires

  • Je suis à jour sur tout, aussi bien pour Jeedom que pour les plugins.
  • La première ligne correspond à une extraction de la page « Memory Usage ».
  • Je regarde aussi la conso de tous les plugins, il n’y a pas de plugin qui s’emballe au niveau mémoire.
  • Reste cette ligne JeeScenario dont je ne sais pas dire à quoi elle correspond.
  • J’ai plus de 250 scénarios donc autant dire que je n’ai pas envie de les couper un à un et de voir si cela s’emballe au bout de quelques heures. Je risque d’en avoir pour des semaines.

D’où ma question de savoir s’il est possible de savoir à quoi correspond jeeScenarioExpression.php key=scenarioElement20614::a1WgJoqiwQHHy80h::1761696920

Je viens de regarder de nouveau, j’ai encore moins de mémoire qu’à midi…

Bonsoir,

Dans un bloc code lance ce code, il devrait te donner dans les log les infos de l’expression en question :

$scenarioExpressionId = 20614;
$scenarioExpression = scenarioExpression::byId($scenarioExpressionId);
if (is_object($scenarioExpression)) {
  $scenario->setLog('--- info expression --');
  $scenario->setLog('Scenario : ' . $scenarioExpression->getSubElement()->getElement()->getScenario()->getHumanName());
  $scenario->setLog('Type : ' . $scenarioExpression->getType());
  $scenario->setLog('Expression : ' . $scenarioExpression->getExpression());
}

Pour aider ta recherche, l’expression en question devrait avoir cette case d’activer normalement :

image

6 « J'aime »

génial, j’ai trouvé le scénario qui pose problème, merci beaucoup !

je pense aussi que le log en temps réel sur le scénario identifié pourrait être à l’origine du problème mais je vais virer aussi les commandes en parallèle

Bonjour,

La solution devrait être plutôt sur le post précédent.

4 « J'aime »

Oui mais la première chose était de retrouver le scénario à l’origine du problème et le bloc code php proposé par Phpvarious m’a beaucoup aidé !

Justement c’est donc son post sui qui devrait etre coché en solution

Donc comme tu l’écris, c’est grâce au code de phpvarious que tu as trouvé le scénario. Sans ce code, tu chercherais encore. Donc c’est le post de phpvarious qui a solutionné le problème.

1 « J'aime »

Et qu’a trouvé ce code en fait ?

Bonjour,

La réponse m’intéresse egalement.
Tu peux poster une capture du retour, s’il te plais….?

@Tonio16, @Henri, suffit d’essayer :wink:

-----------------------------------
[2025-10-30 11:17:50][SCENARIO] -- Début : Scenario lance manuellement.
[2025-10-30 11:17:50][SCENARIO] - Exécution du sous-élément de type [action] : code
[2025-10-30 11:17:50][SCENARIO] Exécution d'un bloc code
[2025-10-30 11:17:50][SCENARIO] --- info expression --
[2025-10-30 11:17:50][SCENARIO] Scenario : [Volets][Aucun][SC Gestion Volets Roulants Soleil]
[2025-10-30 11:17:50][SCENARIO] Type : condition
[2025-10-30 11:17:50][SCENARIO] Expression : (#211# > variable(AzimuthOuestGauche) || #1515# < 25) && #time# > 0900 && #time# < time_op(#214#,-20)
[2025-10-30 11:17:50][SCENARIO] Fin correcte du scénario

Les ID sont dans la DB et visible avec un SELECT * FROM scenarioExpression

1 « J'aime »

J’ai mis le bloc code dans un scénario. Après exécution, il m’a retourné le nom du scénario concerné par la ligne qui surconsommait ma mémoire (scenarioElement20614)

2408000 14210 www-data php /var/www/html/core/class/../php/jeeScenarioExpression.php key=scenarioElement20614::a1WgJoqiwQHHy80h::1761696920

Une fois lancé le bloc code, j’ai donc eu le nom dans les logs du scénario :

[2025-10-29 21:28:48][SCENARIO] Scenario : [Telecommandes][Aucun][Bouton TV]
[2025-10-29 21:28:48][SCENARIO] Type : action
[2025-10-29 21:28:48][SCENARIO] Expression : #21572#

j’ai ensuite viré les exécutions en parallèle comme recommandé par Phpvarious et depuis, plus de soucis !

ce qui est étrange, c’est que ce scénario tourne depuis un moment sans que je rencontre ces problèmes de mémoire. Mais bon, c’est réglé maintenant.

J’ai pas recommandé de viré les exécutions en parallèles mais juste indiqué que ton soucis concernait ce type d’action pour que tu puisse cibler le bloc en question.

Après je suis pas spécialiste dans ce domaine (mémoire, thread…) mais je pousserai peut-être encore plus les recherches en analysant l’ID de l’action #21572# (plugin ?) qui semble poser ce problème.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.