Selezione tema utente rotta e causa problemi di prestazioni?

Ciao,

Innanzitutto, grazie per quanto è incredibile Discourse; lo amiamo da quando abbiamo migrato dal plugin bbPress (la migrazione non è stata fluida, ma questo è un altro discorso).

Uno degli utenti del mio sito Discourse ha notato che, quando tentava di selezionare un tema diverso dal proprio profilo, la visualizzazione era rotta (sono allegati gli screenshot). Tuttavia, non sono riuscito a riprodurre il problema del template rotto, poiché per me, in qualità di amministratore, si caricavano correttamente.

Ma la parte più intrigante è questa: pensavo che la nostra community fosse piuttosto pesante in termini di traffico e utenti (49.000 post, 7.300 utenti) e che il VPS (2 GB di RAM + 2 GB di swap e 1 CPU) non fosse in grado di gestirla, creando un collo di bottiglia che causava un caricamento molto lento del sito (alcune pagine richiedevano da 3 a 10 secondi per caricarsi, mostrando il cursore di caricamento).

Stavo utilizzando “Grey Amber” come tema predefinito, mentre “Dark” e “Light” erano impostati come temi selezionabili dagli utenti.

Quindi ho deciso di disabilitare i temi Dark e Light per gli utenti e, all’improvviso, il sito è diventato più reattivo e quasi veloce quanto Meta.discourse!!! Ora webpagetest.org e altri siti di test delle pagine mostrano tempi incredibilmente rapidi, alcuni addirittura inferiori al secondo. Anche le pagine di backend come sidekiq, log, upgrade, ecc., che prima si caricavano molto lentamente, ora sono quasi istantanee. Non l’ho ancora provato, ma mi chiedo se gli aggiornamenti potrebbero funzionare ora tramite l’interfaccia, dato che prima si bloccavano, venivano annullati o generavano errori, ecc. OMG wow, anche l’aggiornamento tramite interfaccia funziona ora… Prima dovevo eseguirlo tramite terminale, lasciando il sito offline per circa 20-30 minuti; immagino che non sarà più necessario!

È un comportamento normale che disabilitare o impostare i temi su “inattivo” porti a un aumento delle prestazioni? Immagino di no, ma è quanto ho riscontrato finora, anche dopo aver ricostruito l’applicazione diverse volte.

Versione in esecuzione: v2.4.0.beta1 + 135 157 (aggiornato mentre scrivevo questo messaggio solo per verificare se funzionasse tramite l’interfaccia, e ci è riuscito, incredibile)
Backup S3
Componente tema Header Links (il sito era lento anche prima di aggiungere questo componente)
discourse-oauth2-basic

Il DNS è gestito da Cloudflare, ma so bene di aver disabilitato tutte le ottimizzazioni, la cache, Brotli, ecc. Ora è molto veloce e non ci sono problemi con le stesse impostazioni di Cloudflare; l’unica cosa cambiata è stata la disabilitazione dei temi.

Mi scuso se questo è un post lungo, ma sto solo cercando di fornire quante più informazioni possibili, nel caso aiutino qualcuno o siano utili per il debug.

L’utente ha scattato degli screenshot che ho allegato, che mostrano come appare nel browser quando vengono selezionati i temi Dark o Light:

Quando succede, compare qualcosa nella console del browser o in /logs? La lentezza di Sidekiq e dei log probabilmente non è causata da un tema (Grey Amber è fondamentalmente solo una combinazione di colori, quindi non ci sono modifiche significative in tal senso).

Ho pulito i log, ho riattivato i temi per consentirne la selezione agli utenti e ho effettuato un’anteprima nel mio account, ma non ho rilevato nulla nella console del browser.

Nei log è apparso questo messaggio, ma probabilmente non è correlato:

TypeError: t.forEach non è una funzione
Url: https://wowlazymacros.com/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js
Riga: 3
Posizione della finestra: https://wowlazymacros.com/t/7-2-5-updated-fury-macros/3811

Potrebbe essere che il tuo server fosse sovraccarico mentre eseguiva una qualche manipolazione delle immagini e che ora abbia terminato.

Forse hai ragione. Potrebbe essere qualche processo che porta la CPU al 100% per un po’ e rallenta tutto il resto. La cosa divertente è che deve essere una coincidenza molto strana che si comporti così da settimane e all’improvviso ho cambiato quella impostazione e ora è tutto fluido come il burro lol.

Un altro mistero irrisolto :stuck_out_tongue_winking_eye:

O forse alcuni commit hanno risolto qualcosa dall’ultimo rebuild che ho fatto. La cosa che mi lascia più sorpreso è che ora posso aggiornare tramite il browser, il che mi rende molto felice :+1: