Exécution de Discourse-docker avec Unicorn : problème de mémoire

Exécutez Docker avec la dernière version discourse-docker, Mémoire : 2 Go, 3 threads unicorn.
Il y a énormément d’erreurs dans les journaux comme ci-dessous.

I, [2019-12-17T22:44:47.722151 #19487]  INFO -- : écoute sur addr=0.0.0.0:3000 fd=13
I, [2019-12-17T22:44:53.036892 #19487]  INFO -- : processus maître prêt
I, [2019-12-17T22:44:55.704154 #19587]  INFO -- : worker=0 prêt
I, [2019-12-17T22:44:56.644984 #19594]  INFO -- : worker=1 prêt
I, [2019-12-17T22:44:57.595814 #19601]  INFO -- : worker=2 prêt
I, [2019-12-18T05:12:51.517167 #19487]  INFO -- : récupéré #<Process::Status: pid 19587 exit 0> worker=0
I, [2019-12-18T05:12:52.533342 #19487]  INFO -- : récupéré #<Process::Status: pid 19594 exit 0> worker=1
Worker 19563 détecté comme mort, redémarrage...
I, [2019-12-18T05:12:53.551518 #19487]  INFO -- : récupéré #<Process::Status: pid 19601 exit 0> worker=2
I, [2019-12-18T05:12:59.062671 #11689]  INFO -- : worker=1 prêt
I, [2019-12-18T05:12:59.063307 #11680]  INFO -- : worker=0 prêt
I, [2019-12-18T05:12:59.360555 #11706]  INFO -- : worker=2 prêt
WARNING: V8 isolate was forked, it can not be disposed and memory will not be reclaimed till the Ruby process exits.
WARNING: V8 isolate was forked, it can not be disposed and memory will not be reclaimed till the Ruby process exits.
WARNING: V8 isolate was forked, it can not be disposed and memory will not be reclaimed till the Ruby process exits.
WARNING: V8 isolate was forked, it can not be disposed and memory will not be reclaimed till the Ruby process exits.
WARNING: V8 isolate was forked, it can not be disposed and memory will not be reclaimed till the Ruby process exits.
WARNING: V8 isolate was forked, it can not be disposed and memory will not be reclaimed till the Ruby process exits.
WARNING: V8 isolate was forked, it can not be disposed and memory will not be reclaimed till the Ruby process exits.
WARNING: V8 isolate was forked, it can not be disposed and memory will not be reclaimed till the Ruby process exits.
D, [2019-12-18T05:13:23.583306 #19487] DEBUG -- : attente de 16,0 s après mise en veille/suspension
I, [2019-12-18T05:13:44.194692 #19487]  INFO -- : récupéré #<Process::Status: pid 11680 exit 0> worker=0
I, [2019-12-18T05:13:44.194960 #19487]  INFO -- : récupéré #<Process::Status: pid 11689 exit 0> worker=1
I, [2019-12-18T05:13:44.195054 #19487]  INFO -- : récupéré #<Process::Status: pid 11706 exit 0> worker=2
I, [2019-12-18T05:13:44.195120 #19487]  INFO -- : maître terminé
I, [2019-12-18T05:13:45.760881 #11795]  INFO -- : Actualisation de la liste des Gems

Quelqu’un a-t-il rencontré le même problème ?

Exécutez-vous des plugins non officiels ? Ou autre chose sur le serveur ? 2 Go devraient largement suffire…

Merci pour votre réponse. Le serveur exécute uniquement Sidekiq et Discourse.

Pouvez-vous exécuter :

cd /var/discourse
./discourse-doctor

et nous partager l’URL ?

@Falco
Merci beaucoup, voici les résultats du diagnostic :

DISCOURS DOCTOR ven. 20 déc. 03:42:31 UTC 2019
Système d'exploitation : Linux int-communityweb-01w.our-internal-domain 3.10.0-1062.7.1.el7.x86_64 #1 SMP lun. 2 déc. 17:33:29 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux


YML=web_only.yml
Conteneur trouvé : web_only.yml

==================== PARAMÈTRES YML ====================
DISCOURSE_HOSTNAME=int-communityweb-vip.our-internal-domain
SMTP_ADDRESS=our_smtp_server # (obligatoire)
DEVELOPER_EMAILS=MASQUÉ 
SMTP_PASSWORD=MASQUÉ  (facultatif)
SMTP_PORT=25 # (facultatif)
SMTP_USER_NAME=# (facultatif)
LETSENCRYPT_ACCOUNT_EMAIL=MASQUÉ 

==================== INFORMATIONS DOCKER ====================
VERSION DOCKER : Docker version 17.05.0-ce, build 89658be

PROCESSUS DOCKER (docker ps -a)

CONTAINER ID        IMAGE                                                                                                             COMMANDE             CRÉÉ                STATUT                    PORTS                NOMS
e6c7024d0d4b        artifacts.our-internal-domain:8080/image/community:99-2.0.20191013-2320-tests-passed-b6b05d3b48-2019-12-16_09-28   "/sbin/boot"        il y a 43 heures        En cours depuis 43 heures               0.0.0.0:80->80/tcp   web_only
703de08548b0        artifacts.our-internal-domain:8080/image/community:90-2.0.20190625-0946-tests-passed-ac7d68a-2019-08-30_09-36      "/sbin/boot"        il y a 4 semaines         Arrêté (5) il y a 46 heures                        web_only_bak


Le conteneur Discourse web_only est en cours d'exécution


==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://gitlab.our-internal-domain/community/community-sso-plugin.git
          - git clone https://gitlab.our-internal-domain/community/community-ads-plugin.git
          - git clone  --branch upgarde-newrelic-gem https://gitlab.our-internal-domain/community/community-newrelic-plugin.git

AVERTISSEMENT :
Il semble que vous ayez des plugins non officiels.
Si vous rencontrez des problèmes, vous devriez les désactiver et essayer de reconstruire à nouveau.

Voir https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb pour la liste officielle.

========================================
Version de Discourse sur int-communityweb-vip.our-internal-domain : Discourse 2.4.0.beta8 
Version de Discourse sur localhost : Discourse 2.4.0.beta8 


==================== INFORMATIONS SUR LA MÉMOIRE ====================
Système d'exploitation : Linux
RAM (Mo) : 1882

              total        utilisé        libre      partagé  cache/buff   disponible
Mémoire :          1838        1340          66           7         430         306
Échange :          3071         388        2683

==================== VÉRIFICATION DE L'ESPACE DISQUE ====================
---------- Espace disque du système d'exploitation ----------
Système de fichiers             Taille  Utilisé Disponible % Utilisé Monté sur
/dev/mapper/vg00-root   19G   15G  3.3G  82% /
/dev/mapper/vg00-root   19G   15G  3.3G  82% /var/lib/docker/overlay
/dev/mapper/vg00-root   19G   15G  3.3G  82% /

---------- Espace disque du conteneur ----------


==================== INFORMATIONS SUR LE DISQUE ====================

Disque /dev/sda : 21,5 Go, 21474836480 octets, 41943040 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille du secteur (logique/physique) : 512 octets / 512 octets
Taille E/S (minimale/optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant du disque : 0x0005c8ec

   Périphérique Amorçage      Début         Fin      Blocs   Id  Système
/dev/sda1   *        2048     1050623      524288   83  Linux
/dev/sda2         1050624    16777215     7863296   8e  Linux LVM
/dev/sdimage        16777216    41943039    12582912   8e  Linux LVM

Disque /dev/mapper/vg00-root : 19,9 Go, 19851640832 octets, 38772736 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille du secteur (logique/physique) : 512 octets / 512 octets
Taille E/S (minimale/optimale) : 512 octets / 512 octets


Disque /dev/mapper/vg00-swap : 1073 Mo, 1073741824 octets, 2097152 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille du secteur (logique/physique) : 512 octets / 512 octets
Taille E/S (minimale/optimale) : 512 octets / 512 octets

==================== FIN DES INFORMATIONS SUR LE DISQUE ====================

==================== TEST DE COURRIER ====================
Pour un test robuste, obtenez une adresse sur http://www.mail-tester.com/
Test de courrier ignoré.

==================== TERMINÉ ! ====================
  1. Le noyau intégré est assez ancien. Pouvez-vous l’exécuter sur quelque chose de plus moderne ?

  2. La version de Docker est également assez ancienne. Pouvez-vous la mettre à jour vers une version prise en charge ?

  3. Vous exécutez un conteneur web_only, qui utilisera encore moins de mémoire qu’un conteneur autonome. Cela dit, vous exécutez plusieurs plugins personnalisés, qui peuvent ou non allouer trop de mémoire.

  4. Vérifiez la valeur de swapiness de votre système d’exploitation ; elle pourrait être trop faible.

  5. Votre processus Unicorn a été terminé. Il est difficile de savoir pourquoi sans davantage de journaux… Vos plugins personnalisés effectuent-ils des requêtes vers des systèmes externes de manière synchrone ? Peut-être s’agit-il simplement d’un délai d’attente ?

Il y a trop de variables ici qui éloignent cette configuration d’une installation simple, donc je vous conseille de les réduire d’abord.

@Falco Merci, j’ajouterai plus de mémoire pour cela. Concernant la mise à niveau du noyau et de Docker, je discuterai avec l’équipe SE pour prendre la décision.
Joyeux Noël. :dizzy: