Discourse-docker eseguito con problema di memoria di unicorn

Esegui Docker con l’ultima versione discourse-docker, Mem: 2GB, 3 thread unicorn.
Ci sono molti errori di log come quelli riportati di seguito.

I, [2019-12-17T22:44:47.722151 #19487]  INFO -- : in ascolto su addr=0.0.0.0:3000 fd=13
I, [2019-12-17T22:44:53.036892 #19487]  INFO -- : processo master pronto
I, [2019-12-17T22:44:55.704154 #19587]  INFO -- : worker=0 pronto
I, [2019-12-17T22:44:56.644984 #19594]  INFO -- : worker=1 pronto
I, [2019-12-17T22:44:57.595814 #19601]  INFO -- : worker=2 pronto
I, [2019-12-18T05:12:51.517167 #19487]  INFO -- : raccolto #<Process::Status: pid 19587 exit 0> worker=0
I, [2019-12-18T05:12:52.533342 #19487]  INFO -- : raccolto #<Process::Status: pid 19594 exit 0> worker=1
Rilevato worker morto 19563, riavvio in corso...
I, [2019-12-18T05:12:53.551518 #19487]  INFO -- : raccolto #<Process::Status: pid 19601 exit 0> worker=2
I, [2019-12-18T05:12:59.062671 #11689]  INFO -- : worker=1 pronto
I, [2019-12-18T05:12:59.063307 #11680]  INFO -- : worker=0 pronto
I, [2019-12-18T05:12:59.360555 #11706]  INFO -- : worker=2 pronto
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 -- : in attesa di 16.0s dopo sospensione/ibernazione
I, [2019-12-18T05:13:44.194692 #19487]  INFO -- : raccolto #<Process::Status: pid 11680 exit 0> worker=0
I, [2019-12-18T05:13:44.194960 #19487]  INFO -- : raccolto #<Process::Status: pid 11689 exit 0> worker=1
I, [2019-12-18T05:13:44.195054 #19487]  INFO -- : raccolto #<Process::Status: pid 11706 exit 0> worker=2
I, [2019-12-18T05:13:44.195120 #19487]  INFO -- : master completato
I, [2019-12-18T05:13:45.760881 #11795]  INFO -- : Aggiornamento elenco Gem

Qualcuno ha lo stesso problema?

Stai utilizzando qualche plugin non ufficiale? O stai eseguendo qualcos’altro sul server? 2GB dovrebbero essere più che sufficienti…

Grazie per la risposta. Il server esegue solo sidekiq e discourse.

Puoi eseguire:

cd /var/discourse
./discourse-doctor

e condividerci l’URL?

@Falco
Grazie mille, ecco i risultati del controllo:

DISCOURSE DOCTOR ven 20 dic 03:42:31 UTC 2019
OS: Linux int-communityweb-01w.our-internal-domain 3.10.0-1062.7.1.el7.x86_64 #1 SMP lun 2 dic 17:33:29 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux


YML=web_only.yml
Trovato containers/web_only.yml

==================== IMPOSTAZIONI YML ====================
DISCOURSE_HOSTNAME=int-communityweb-vip.our-internal-domain
SMTP_ADDRESS=our_smtp_server # (obbligatorio)
DEVELOPER_EMAILS=REDACTED 
SMTP_PASSWORD=REDACTED  (opzionale)
SMTP_PORT=25 # (opzionale)
SMTP_USER_NAME=# (opzionale)
LETSENCRYPT_ACCOUNT_EMAIL=REDACTED 

==================== INFORMAZIONI DOCKER ====================
VERSIONE DOCKER: Docker version 17.05.0-ce, build 89658be

PROCESSI DOCKER (docker ps -a)

CONTAINER ID        IMAGE                                                                                                             COMANDO             CREAZIONE             STATO                    PORTS                NOMI
e6c7024d0d4b        artifacts.our-internal-domain:8080/image/community:99-2.0.20191013-2320-tests-passed-b6b05d3b48-2019-12-16_09-28   "/sbin/boot"        43 ore fa        Attivo da 43 ore               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"        4 settimane fa         Uscito (5) 46 ore fa                        web_only_bak


Il container Discourse web_only è in esecuzione


==================== PLUGIN ====================
          - 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

AVVERTENZA:
Sembra che tu abbia plugin non ufficiali.
Se stai riscontrando problemi, dovresti disabilitarli e provare a ricostruire di nuovo.

Vedi https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb per l'elenco ufficiale.

========================================
Versione di Discourse su int-communityweb-vip.our-internal-domain: Discourse 2.4.0.beta8 
Versione di Discourse su localhost: Discourse 2.4.0.beta8 


==================== INFORMAZIONI SULLA MEMORIA ====================
OS: Linux
RAM (MB): 1882

              totale        usato       libero      condiviso  buffer/cache   disponibile
Mem:           1838        1340          66           7         430         306
Swap:          3071         388        2683

==================== CONTROLLO SPAZIO SU DISCO ====================
---------- Spazio su disco del sistema operativo ----------
Filesystem             Dimensione  Usato Disp. Uso% Montato su
/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% /

---------- Spazio su disco del container ----------


==================== INFORMAZIONI SUL DISCO ====================

Disco /dev/sda: 21,5 GB, 21474836480 byte, 41943040 settori
Unità = settori da 1 * 512 = 512 byte
Dimensione settore (logica/fisica): 512 byte / 512 byte
Dimensione I/O (minima/ottimale): 512 byte / 512 byte
Tipo etichetta disco: dos
Identificatore disco: 0x0005c8ec

   Dispositivo Boot      Start         End      Blocchi   Id  Sistema
/dev/sda1   *        2048     1050623      524288   83  Linux
/dev/sda2         1050624    16777215     7863296   8e  Linux LVM
/dev/sdimage        16777216    41943039    12582912   8e  Linux LVM

Disco /dev/mapper/vg00-root: 19,9 GB, 19851640832 byte, 38772736 settori
Unità = settori da 1 * 512 = 512 byte
Dimensione settore (logica/fisica): 512 byte / 512 byte
Dimensione I/O (minima/ottimale): 512 byte / 512 byte


Disco /dev/mapper/vg00-swap: 1073 MB, 1073741824 byte, 2097152 settori
Unità = settori da 1 * 512 = 512 byte
Dimensione settore (logica/fisica): 512 byte / 512 byte
Dimensione I/O (minima/ottimale): 512 byte / 512 byte

==================== FINE INFORMAZIONI SUL DISCO ====================

==================== TEST MAIL ====================
Per un test accurato, ottieni un indirizzo da http://www.mail-tester.com/
Test mail saltato.

==================== FINE! ====================

  1. Il kernel incluso è piuttosto vecchio; puoi eseguirlo su qualcosa di più moderno?

  2. La versione di Docker inclusa è piuttosto vecchia; puoi aggiornarla a una versione supportata?

  3. Stai eseguendo un container web_only, che consumerà ancora meno memoria rispetto a uno standalone. Detto questo, stai utilizzando diversi plugin personalizzati, che potrebbero o meno allocare troppa memoria.

  4. Controlla il parametro swapiness del tuo sistema operativo; potrebbe essere impostato troppo basso.

  5. Il tuo processo Unicorn è stato terminato. Senza ulteriori log è difficile capire il motivo… I tuoi plugin personalizzati effettuano richieste a sistemi esterni in modo sincrono? Forse si tratta semplicemente di un timeout?

Ci sono troppe variabili in gioco che allontanano questa situazione da una semplice installazione, quindi ti consiglio di ridurle prima di tutto.

@Falco Grazie, aggiungerò più memoria per questo. Per quanto riguarda l’aggiornamento del kernel e di Docker, ne discuterò con il team SE per prendere una decisione.
Buon Natale. :dizzy: