Discourse smette di funzionare - carico CPU/RAM?

Ciao a tutti.

Spero che qualcuno possa aiutarmi a risolvere un problema che stiamo riscontrando attualmente sul nostro forum :-
https://forum.combustionpunks.co.uk
È una storia lunga… ma voglio fornire tutte le informazioni che potrebbero aiutare a risolvere il problema, quindi vi prego di aver pazienza. Nel corso di questa spiegazione noterete che non ho molta esperienza con Ubuntu :frowning:

Tutto ha funzionato alla perfezione per un bel po’ di tempo :smiley: fino a ieri sera.
Stiamo facendo un piccolo rebranding, abbiamo aggiornato i loghi e cose del genere, quindi ieri ero nel pannello di amministrazione a caricare i nuovi loghi. Ho anche notato che eravamo indietro di alcune versioni, quindi ho eseguito gli aggiornamenti, dovendo farlo manualmente seguendo le istruzioni qui:-

ad esempio
cd /var/discourse
git pull
./launcher rebuild app

Tutto sembrava procedere bene, gli aggiornamenti sono stati completati, i loghi caricati e visualizzati, ho provato alcuni temi, sono tornato a quello originale, poi sono uscito per un impegno sociale legato al forum… sì, sono andato al pub a cena con gli amici.

Circa 30 minuti dopo, mentre ero fuori, abbiamo notato che il forum era offline… un piccolo panico, poi abbiamo visto che Digital Ocean aveva dei problemi, quindi ci siamo rilassati.

Sono tornato circa 2 ore dopo, i problemi di DO erano risolti, ma il forum era ancora offline… nessun problema, ho riavviato il droplet, tutto è tornato a funzionare correttamente… circa 30 minuti dopo era offline di nuovo…

Poi ho pensato che fosse meglio eliminare eventuali altri aggiornamenti in sospeso, quindi ho provato ad aggiornare Docker con
wget -qO- https://get.docker.com/ | sh
questo non sembrava aver fatto molto.
Ho ricostruito l’app con ./launcher rebuild app
Non credo che sia stato aggiornato perché durante la ricostruzione dell’app viene visualizzato il messaggio
docker versione 17.05.0-ce deprecata e quando eseguo docker version viene riportata la versione 17.05.0-ce

Poi ho notato che proprio prima che il forum andasse offline stavamo ricevendo messaggi del tipo:-
Out of memory: kill process (convert) or sacrifice child
Out of memory: kill process (ruby) or sacrifice child

Ho eseguito Htop

Molte istanze di sidekiq, ho trovato un post sulla riduzione del numero di thread elaborati contemporaneamente - ridotto da 80 a 2 - i problemi sono continuati

Istanze di convert in esecuzione su JPEG in var/www/discourse/public/uploads/default/original/ (non so come visualizzare il resto della stringa per vedere su quali immagini sono in esecuzione)

Utilizzo della CPU al 100% - Ruby var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn -E

Aggiornato il sistema operativo - ora esegue Ubuntu 18.04
Docker ancora alla versione 17.05.0-ce.

Il droplet è stato ridimensionato da 2GB 1vCPU 50GB ($10) a 3GB 1vCPU 50GB ($15)
i problemi continuano.

Riavviare il droplet o ricostruire Discourse lo riporta online per un breve periodo (10 - 30 minuti) prima che vada offline di nuovo.

Qualsiasi aiuto in merito sarebbe molto apprezzato, grazie mille in anticipo
Matt

Qualche tempo fa sono stati apportati alcuni cambiamenti al modo in cui le immagini vengono compresse. Probabilmente sei sommerso dalla elaborazione delle immagini. Dovrebbe calmarsi presto, ma se hai molte immagini potrebbe volerci un po’. Puoi eseguire

  ps -ax

Oppure

 top

Per vedere cosa è in esecuzione. Premi q per uscire da top.

Grazie @pfaffman, lascerò che continui a funzionare per un po’ di tempo ancora e vedrò se riesce a elaborare tutto e a stabilizzarsi un po’.

Hai seguito la maggior parte delle procedure di risoluzione dei problemi che consigliamo, ottimo lavoro. Ci sono un numero enorme di immagini sul tuo forum?

Ti consiglio di aggiornare Docker non appena ne avrai l’occasione.

E quando lo farai, ricorda di riavviare il sistema dopo l’aggiornamento di Docker. Non viene dato alcun avviso, e Docker non ha funzionato per me dopo l’aggiornamento di ieri finché non ho pensato di riavviare.

Grazie mille, ragazzi.

Il problema persiste comunque :frowning: ruby /vazr/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn -E sta utilizzando il 98% della CPU in questo momento, il forum non è disponibile

Numero di immagini: non so come definirle, ma sono parecchie. Non siamo un forum enorme. Il comando df mostra l’80% dei 50 GB utilizzati; nel pannello di amministrazione di Discourse vengono indicati 5,7 GB di upload.

Il comando di aggiornamento di Docker che ho provato non sembra aver avuto alcun effetto. Ho trovato istruzioni su come installare su Ubuntu 18, ma non su come aggiornare… Dovrei seguire le istruzioni di installazione?

Prima del riavvio del droplet questa mattina non erano visibili processi di conversione; dopo il riavvio ce ne sono ora 5, che utilizzano circa il 50% di CPU e RAM. Il resto sembra essere occupato da Ruby e dai processi Sidekiq, che utilizzano le risorse in modo intermittente. La CPU e la RAM continuano a essere costantemente saturate.

I processi di conversione vengono ancora terminati per mancanza di memoria.

Pensate che ci sia ancora una coda di lavoro da elaborare? Un ulteriore ridimensionamento del droplet aiuterebbe a smaltire quella coda? Il forum rimane online per non più di 30 minuti alla volta, spesso anche meno.

Non sono riuscito a risolvere il problema, sto aumentando le dimensioni del droplet per vedere se riesce a completare il ridimensionamento dell’immagine, se è questo che sta facendo.

Dopo aver ridimensionato, assicurati di eseguire discourse-setup per regolare i parametri di memoria e ricostruire (o distruggere e avviare).