Quanto è grave "il sito è sotto carico estremo, la ricerca è disabilitata, riprova più tardi"

Ho ricevuto segnalazioni da parte dei miei membri riguardo a questo messaggio di avviso. Non appare spesso, ma viene notato. Posso assumere che non ci sia nulla da fare e che non sia così grave come sembra? “Carico estremo” sembra un problema enorme. Tuttavia, scompare quasi immediatamente e la ricerca riprende a funzionare.

Apprezzerei qualsiasi indicazione su come procedere con la risoluzione del problema. Grazie! :seedling:

il sito è sotto carico estremo, la ricerca è disabilitata, riprova più tardi

Non sono così sicuro che sia qualcosa che richieda risoluzione dei problemi. Ma forse potrebbe essere gestito in modo diverso?

https://review.discourse.org/t/feature-when-under-extreme-load-disable-search/4538/3

Dovresti preoccuparti, controlla il rapporto del tuo web crawler nella dashboard di amministrazione.

Ciò verrà attivato quando le tue richieste web arrivano più velocemente di quanto il tuo server possa gestirle.

Ad esempio, se hai 4 unicorni e, in media, sono necessari 200 ms per elaborare completamente una richiesta, la tua capacità è di 20 richieste al secondo.

Se, per un momento, ricevi 40 richieste al secondo, le richieste in eccesso rimarranno in coda in attesa e verrà mostrato quel messaggio. Inoltre, non puoi impostare ciecamente più unicorni, poiché il processo per rispondere completamente a una richiesta web comporta molte parti mobili che dovrebbero essere valutate con cura.

Discourse ha acquisito molte di queste funzionalità di degradazione elegante recentemente, mentre lavoriamo per scalare e gestire un livello di traffico pazzesco per le istanze Discourse più grandi su Internet.

Sembra che abbiamo registrato un aumento delle visualizzazioni di pagine da parte dei crawler web negli ultimi giorni. Tuttavia, non sono sicuro se ci sia qualcosa che io possa o debba fare a riguardo. Personalmente, sto bene con un avviso rivolto ai membri di tanto in tanto quando il server è sotto un carico superiore al normale, bloccando temporaneamente la ricerca. Ma forse il messaggio di “carico estremo” potrebbe essere addolcito, dicendo semplicemente “server occupato”.

Blocca l’user-agent del crawler malfunzionante nelle impostazioni del sito. Al giorno d’oggi ci sono molti crawler davvero problematici su Internet.

Hmm, solo 1800 visualizzazioni di pagina in 24 ore da parte di un crawler non dovrebbero creare così tanto carico aggiuntivo sul tuo server. Potrebbe valere la pena aprire il tuo log di accesso e osservare direttamente le richieste in arrivo quando ciò accade; potrebbe indicare il vero problema. Potrebbe trattarsi di qualcuno che cerca di hackerarti o di sovraccaricare la tua API con richieste.

Ho appena ricevuto una segnalazione di un’altra notifica simile. Stiamo organizzando una AMA e ci sono un po’ più persone del solito che leggono e scrivono nel forum, ma non sono convinto che si tratti di un carico eccessivo. Forse un plugin come Discourse Who's Online sta causando un carico aggiuntivo?

Grazie! Ci darò un’occhiata subito.

C’è un modo per disabilitare queste funzioni nelle impostazioni di amministrazione e far semplicemente attendere gli utenti se il sito diventa lento? Credo che il nostro sito non sia ancora particolarmente affollato.

Se le prestazioni peggiorano al punto da causare timeout, non sembrerà semplicemente lento: sembrerà rotto.

Ignorare questi avvisi non è assolutamente una buona idea!

Sto ricevendo spesso questa notifica di carico estremo ultimamente.

Ho un forum sportivo e di solito succede quando molte persone commentano contemporaneamente un unico argomento relativo a una partita specifica. Esiste una guida o un supporto per verificare i log o il server per capire se è performante? Non era un problema fino alle ultime settimane.

Pensi che possiamo aver registrato un peggioramento nelle prestazioni di pubblicazione per gli utenti loggati, @sam?

Sto riscontrando sicuramente un problema N+1 su meta che dobbiamo risolvere al più presto.

Registrierò alcuni elementi per risolvere la questione. Detto questo, una volta che il sito è sovraccarico, gli amministratori hanno la possibilità di modificare due aspetti:

  1. Puoi assegnare più risorse all’istanza (più memoria per PostgreSQL o più worker unicorn)

  2. Puoi regolare la soglia anonima come da:

DISCOURSE_FORCE_ANONYMOUS_MIN_QUEUE_SECONDS e DISCOURSE_FORCE_ANONYMOUS_MIN_PER_10_SECONDS

Ho corretto un problema N+1 nel plugin discourse-voting qui:

Vediamo se ne salta fuori qualcun altro.

Ne ho trovato un altro N+2 qui:

Sto cercando di vedere se ne salti fuori qualcos’altro.

D: Cos’è un “N+1”? Anche se sono uno sviluppatore (Java), non credo di aver mai incontrato questo termine prima.

Ecco un articolo (più o meno relativo a Java) che spiega questo problema: