Problème de consommation de mémoire RAM

Bonjour,
Mon jeedom consomme énormément de mémoire ram ces dernier temps, et je suis obligé de passé par un redémarrage de la machine pour débloquer les situations.

root@jeedom:~# lshw -short
Chemin matériel       Périphérique  Classe         Description
=================================================================
                                       system         HP ProDesk 400 G1 DM (L8Q30EC#ABF)
/0                                     bus            8076
/0/0                                   memory         64KiB BIOS
/0/21                                  processor      Intel(R) Core(TM) i3-4160T CPU @ 3.10GHz
/0/21/22                               memory         128KiB L1 cache
/0/21/23                               memory         512KiB L2 cache
/0/21/24                               memory         3MiB L3 cache
/0/26                                  memory         4GiB Mémoire Système
/0/26/0                                memory         DIMMProject-Id-Version: @(#) $Id: fr.po 2151 2010-03-15 20:26:20Z lyonel $Report-Msgid-Bugs-To: POT-Creation-Da
/0/26/1                                memory         4GiB SODIMM DDR3 Synchrone 1600 MHz (0,6 ns)
/0/100                                 bridge         4th Gen Core Processor DRAM Controller
/0/100/2                               display        4th Generation Core Processor Family Integrated Graphics Controller
/0/100/3                               multimedia     Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller
/0/100/14                              bus            8 Series/C220 Series Chipset Family USB xHCI
/0/100/14/0            usb3            bus            xHCI Host Controller
/0/100/14/0/6                          input          Ellipse ECO
/0/100/14/0/9                          communication  SONOFF Zigbee 3.0 USB Dongle Plus V2
/0/100/14/1            usb4            bus            xHCI Host Controller
/0/100/16                              communication  8 Series/C220 Series Chipset Family MEI Controller #1
/0/100/19              eno1            network        Ethernet Connection I217-LM
/0/100/1a                              bus            8 Series/C220 Series Chipset Family USB EHCI #2
/0/100/1a/1            usb1            bus            EHCI Host Controller
/0/100/1a/1/1                          bus            Integrated Rate Matching Hub
/0/100/1b                              multimedia     8 Series/C220 Series Chipset High Definition Audio Controller
/0/100/1d                              bus            8 Series/C220 Series Chipset Family USB EHCI #1
/0/100/1d/1            usb2            bus            EHCI Host Controller
/0/100/1d/1/1                          bus            Integrated Rate Matching Hub
/0/100/1f                              bridge         H81 Express LPC Controller
/0/100/1f.2            scsi0           storage        8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
/0/100/1f.2/0.0.0      /dev/sda        disk           256GB SSDPR-CX400-256-
/0/100/1f.2/0.0.0/1    /dev/sda1       volume         237GiB EXT4 volume
/0/100/1f.2/0.0.0/2    /dev/sda2       volume         976MiB Extended partition
/0/100/1f.2/0.0.0/2/5  /dev/sda5       volume         976MiB Linux swap volume
/0/100/1f.3                            bus            8 Series/C220 Series Chipset Family SMBus Controller
/0/1                                   system         PnP device PNP0c02
/0/2                                   system         PnP device PNP0b00
/0/3                                   generic        PnP device INT3f0d
/0/4                                   system         PnP device PNP0c02
/0/5                                   system         PnP device PNP0c02
/0/6                                   system         PnP device PNP0c02
/0/7                                   generic        PnP device IFX0102
/1                                     power          Standard Efficiency

root@jeedom:~# hwinfo --short
cpu:                                                            
                       Intel(R) Core(TM) i3-4160T CPU @ 3.10GHz, 3092 MHz
                       Intel(R) Core(TM) i3-4160T CPU @ 3.10GHz, 3092 MHz
                       Intel(R) Core(TM) i3-4160T CPU @ 3.10GHz, 3092 MHz
                       Intel(R) Core(TM) i3-4160T CPU @ 3.10GHz, 3092 MHz
graphics card:
                       Intel 4th Generation Core Processor Family Integrated Graphics Controller
sound:
                       Intel 8 Series/C220 Series Chipset High Definition Audio Controller
                       Intel Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller
storage:
                       Intel 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
network:
  eno1                 Intel Ethernet Connection I217-LM
modem:
  /dev/ttyACM0         QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
network interface:
  lo                   Loopback network interface
  tun0                 Network Interface
  eno1                 Ethernet network interface
disk:
  /dev/sda             SSDPR-CX400-256-
partition:
  /dev/sda1            Partition
  /dev/sda2            Partition
  /dev/sda5            Partition
usb controller:
                       Intel 8 Series/C220 Series Chipset Family USB EHCI #2
                       Intel 8 Series/C220 Series Chipset Family USB EHCI #1
                       Intel 8 Series/C220 Series Chipset Family USB xHCI
bios:
                       BIOS
bridge:
                       Intel H81 Express LPC Controller
                       Intel 4th Gen Core Processor DRAM Controller
hub:
                       Intel Hub
                       Linux Foundation 2.0 root hub
                       Linux Foundation 3.0 root hub
                       Linux Foundation 2.0 root hub
                       Intel Hub
                       Linux Foundation 2.0 root hub
memory:
                       Main Memory
unknown:
                       FPU
                       DMA controller
                       PIC
                       Keyboard controller
                       PS/2 Controller
                       Intel 8 Series/C220 Series Chipset Family MEI Controller #1
                       Intel 8 Series/C220 Series Chipset Family SMBus Controller
                       QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
                       MGE UPS UPS

Je peu bien évidement acheter de la RAM supplémentaire pour HP ProDesk 400 G1 la SODIMM DDR3 n’est pas très chère … mais bon ce n’est pas la meilleur réponse au problème, c’est mettre un pensement sur une hémorragie …

Bonjour

Il semblerait que c’est lié à une fuite de mémoire causée par une library Python.
J’ai aussi ce problème, la mémoire disponible chute irrémédiablement.

Certains plugins écrit en Python consomment la mémoire.
De nombreux messages en parlent sur le forum.

Des solutions temporaires existent ralentissant le phénomène:

1- optimiser Jeedom:

  • diminuer les fréquences d’échantillonnage des historiques
  • Supprimer les historiques non indispensable
  • désactiver les log non indispensables des scénarios

2- redémarrer les plugins consommateurs avec un scénario une fois par jour, exemple:
Dans un bloc code:

JeedomConnect::deamon_stop();
sleep(10);
JeedomConnect::deamon_start();
$scenario->setLog("JeedomConnect restarting");

3- Surveiller la mémoire disponible

4 - Redémarrer Jeedom quand la mémoire disponible est très basse

5 - modifier la configuration de journalctl ( voir messages sur le forum)

Nous attendons tous le passage de Jeedom en Debian 12 pour résoudre ce problème.
L’augmentation de la mémoire ralentie l’échéance du redémarrage de Jeedom.

Cordialement

Il vaut mieux laisser faire le core plutôt que de demander directement au plugin

Dans ce cas un "start" suffit.

1 « J'aime »

Bonjour Jeandhom

Merci pour l’info.

Je vais faire la modification.

Cordialement

1 « J'aime »

Bonjour,
Si tu as le plugin Xiaomi, tu redémarre son démon lorsque ta mémoire libre est inférieure à 30%, par exemple. Pour moi, cela a résolu ma charge de RAM.
Il y a un post pour ce problème avec Xiaomi sur le forum.
Thierry

Voici les plugins que j’ai d’installé :

Merci en tout cas pour ces renseignements … je vais donc ajouter de la ram dans mon serveur, on va passé de 4 à 16Go, il est déjà overkill pour les usages mais on va le rendre encore plus overkill si le software sur consomme …

Puis si ça sature, on reboot

Bonjour

J’ai 42 plugins et 8 go de mémoire sur ma VM, avant optimisation ma mémoire chutait drastiquement en 3 jours, après optimisation après 12 jours il reste 40% de libre. j’aimerais quand même ne pas redémarrer avant 1 mois. En principe un serveur ne doit pas être redémarrer sauf pour la mise à jour du Kernel et pour l’upgrade de l’OS.

Cordialement

Bonjour

J’ai modifié le redémarrage du plugin Jeedom Connect comme tu l’as suggéré. Le plugin est bien relancé mais génère des erreurs, la programmation horaire est à 12h15.

Cordialement

Il faudrait voir ton bloc code et les logs du scénario.
Le core semble dire que tu as essayé de redémarrer le daemon plusieurs fois en moins de 45s.

Bonjour

Je ne logue pas mes scénarios. Je l’ai refait en manuel, pas d’erreurs.

Le scénario:

/* JeedomConnect::deamon_stop();
sleep(10);
JeedomConnect::deamon_start();
$scenario->setLog("JeedomConnect restarting"); */

plugin::byId('JeedomConnect')->deamon_start(true);

Le bloc code :

------------------------------------
[2024-07-23 14:09:45][SCENARIO] -- Début : Scenario lance manuellement.
[2024-07-23 14:09:45][SCENARIO] - Exécution du sous-élément de type [action] : code
[2024-07-23 14:09:45][SCENARIO] Exécution d'un bloc code
[2024-07-23 14:09:48][SCENARIO] Fin correcte du scénario

A voir par la suite.
Cordialement

As-tu quelque chose ici ?

Capture d’écran du 2024-07-23 14-41-06

Bonjour

Non:
image

Je suis bien d’accord avec toi …
Un serveur devrait ne jamais avoir besoin de redémarrer … c’est d’ailleurs le cas de tout mes autres serveur autre que jeedom :confused:

Donc vous ne lisez pas la réponse alors :wink:

Il y a des mises à jours qui nécessitent un redémarrage pour la prise en compte des patchs.
Un serveur qui n’a plus de mise a jour jour, n’a peut être pas besoin d’être redémarré, mais un serveur qui passe de Debian 11.xx à 11.yy a besoin de redémarrer.

Superbes photos au passage, bravo !

Oui je suis d’accord avec toi, mais hors mise à jour ce n’est pas un fonctionnement normal de devoir redémarrer pour libérer de la RAM.
Je viens de rajouter 2Go de SWAP ça semble mieux fonctionner. Je reçois bientôt mes 16Go de RAM, mais je trouve ça très overkill quand même pour un serveur domotique.

En tout cas, je suis convaincu que le passage sous debian12 va nous faire du bien sur ce point, reste à arriver à fixer Python, mais j’ai peur qu’on passe à debian12 lorsque debian13 pointe le bout de son nez…

C’est dommage que Jeedom ne soit pas stable sous docker, cela pourrait résoudre beaucoup de problème…

Bonjour

Je reviens sur le redémarrage du daemon de JC j’ai aujourd’hui la même erreur.

Scénario:

Log du scénario :

Avec le code en commentaire cela ne générait pas cette erreur.

Cordialement

Depuis que je suis passé à 16Go de RAM sur mon serveur domotique, je n’ai plus aucun problème de ralentissement ou autre. Le système est stable.

Bon, j’ai quand même dû mettre 16Go de RAM et 3Go de SWAP pour avoir cette stabilité.
Et, on voit que sur 20 jours, ma consommation de RAM est de 44% des 16Go. C’est ENORME !

Mais cela permet de se dire que le système tient 2 mois sans problème, avant un reboot …

Bonjour
Pour info, depuis mon passage à python 3.9.19, je n’ai plus aucun soucis de fuite mémoire. Les plugins python ne bougent plus.
NOTA : j’ai un Jeedom DIY sous VM Debian 11 / ESXi avec SWAP de 1Go et RAM de 4Go

lien poru migration : Mémoire qui baisse progressivement depuis 4.4 ou Debian 11 - #10 par xavax59

Bonjour,

VMM sur Synology utilise beaucoup de ressources CPU/memoire.

Avez vous essayé Docker ?
Vous verrez votre utilisation CPU/memoire au plus bas

Bonjour Didier,

… mais une occupation du cerveau bien plus importante :wink: C’est clairement pas à la porté de tous (pour maitriser).