Ci sono comandi che possono velocizzare il sito?

Ci sono comandi come rake posts:rebake (cioè dopo la migrazione).

Ce ne sono altri o qualcosa di che possa accelerare il forum? Ho l’impressione che, dopo aver cambiato hosting con più RAM, sia probabilmente ancora più lento… Più GB non hanno aiutato, anche se sto verificando senza alcun traffico. Mi chiedo se ci siano comandi che ottimizzano il database, ecc., perché forse è per questo che la navigazione tra i link è terribilmente lunga e lenta (1-2 secondi). È un po’ un punto a sfavore rispetto a NodeBB, per esempio.

Se modifichi la RAM nel tuo server, devi eseguire nuovamente discourse-setup per regolare le impostazioni della memoria.

Quanto è grande il tuo database? Si tratta di un’importazione o di una nuova community? Quanto è veloce il processore? La velocità del singolo core della CPU è fondamentale. Hai un SSD e non dischi meccanici, giusto?

Test di istanze Lightsail con 2 GB di RAM, 1 vCPU, 60 GB SSD

Penso che le impostazioni siano corrette:

UNICORN_WORKERS: 4
db_shared_buffers: "256MB"

Puoi chiarire?

Lightsail è davvero rivolto a semplici app web e siti web.

Hai un solo core della CPU, il che significa 2 worker unicorn, ma i tuoi shared_buffers potrebbero essere aumentati fino a 512 MB. Il tuo app.yml dovrebbe includere questo commento:

Con 2 GB consigliamo 3-4 worker, con 1 GB solo 2

Quindi stai usando il doppio dei worker con metà della dimensione consigliata del buffer.

I dischi meccanici sono ciò che ha preceduto gli SSD, anche se potresti conoscerli anche come hard disk o HDD. Sono troppo lenti per Discourse.

Queste impostazioni vengono solitamente configurate automaticamente da discourse-setup in base alle specifiche del sistema (numero di core della CPU, quantità di RAM) al momento dell’esecuzione dello script. È anche sicuro eseguirlo nuovamente se le specifiche del server cambiano.

Vuoi dire che è molto meglio investire invece nell’EC2 più economico con due core (in seguito eventualmente combinarlo con ELB)?

È quello che vedo: ogni server su AWS non utilizza dischi HDD.

Ci sono molte differenze tra i tipi di istanza AWS. Alcuni utilizzano dischi basati su EBS che accedono al disco tramite la rete, aumentando la latenza. Altri hanno dischi NVMe locali molto veloci, ma i dati non vengono persistenti. Inoltre, esistono le famiglie di istanze Z e C con prestazioni di dati molto superiori.

Tuttavia, tutto ciò risulta più complesso e costoso rispetto a un droplet di Digital Ocean, che offre prestazioni accettabili per piccole community a 5 dollari e un processore piuttosto veloce nella loro offerta ottimizzata per la CPU da 40 dollari.

A quale offerta esattamente ti riferisci quando parli di ottimizzazione?

A proposito, la mia domanda vale anche per i comandi stessi. Cioè, quali comandi (come “rake rebake posts”) dovrei eseguire per ottimizzare / ricostruire i post / cancellare file non necessari, ecc.?

Non esiste una cosa del genere :sweat_smile:.

Perché mai dovrebbe esserci un comando segreto per rendere le cose veloci? Per quale motivo dovremmo impostare di default una modalità lenta?

Se stai riscontrando problemi di prestazioni, devi fornire dati concreti. Qual è il percorso lento, qual è la dimensione della community, qual è la dimensione del database, hai provato a rimuovere tutti i plugin e i temi, hai provato a eseguire l’istanza su un droplet DO da 5 $, ecc.

C’è già una soluzione :rofl:

Nessuna intenzione di incolpare nessuno, specialmente dato che non ho indagato personalmente, in particolare sull’istanza/configurazione di PostgreSQL… ma Discourse è dannatamente lento. Non sono sicuro di cosa ne sia responsabile, immagino che il ORM Ruby abbia la sua parte.

Certo, puoi sempre aggiungere hardware più potente, più SSD, più RAM… fino a un certo punto, ma questo non cambia il punto principale: Discourse è piuttosto esigente/lento, e anche per installazioni minuscole richiede un host decente.

Davvero? Puoi supportare questa affermazione con dei dati?

Rispetto a cosa e in quali circostanze?

Consideri Meta lento?

Non sono affatto d’accordo con questa affermazione. Conosco diverse piccole comunità che funzionano su un VPS da 5 $. Un’installazione di Discourse lenta è solitamente indicativa di una scarsa scelta dell’host o di una configurazione errata.

Ricorda che Discourse non è un sito web, ma un’applicazione: una volta caricata nel tuo browser, lo scambio di dati è minimo.

Se segui la guida di installazione standard, che è l’unica che supportiamo qui, tutta la regolazione per CPU/RAM viene effettuata automaticamente. Non ci hai fornito esempi o confronti; ti esorto vivamente a fornirci alcuni dettagli specifici.

Posso eseguire alcuni benchmark, certo. Lo eseguo su una virtualizzazione da 5 dollari, con hardware davvero minimale per gli standard odierni, ne sono consapevole. E non stavo confrontandolo con altre soluzioni per forum, ma so cosa può gestire/fornire PostgreSQL, anche quando viene eseguito in un contenitore Docker in una virtualizzazione; ho quasi 20 anni di esperienza nello sviluppo di database.

Ok, ok, e sono stato un po’ provocato dall’atteggiamento del “lo eseguite su hardware del secolo scorso, ovvero dischi meccanici” :slight_smile:
Riformulo in “Discourse è più esigente rispetto a sistemi più semplici”.

Il commento era un po’ troppo duro, concordo. Vedi sopra.

Puoi spiegare cosa significa la parola “mala configurazione”? Significa ciò che puoi davvero sbagliare installando un forum pulito e aggiungendo al massimo 1-2 plugin. Di quale configurazione stai parlando?

@eextra mi vengono in mente alcune cose…

Cosa consideri una prestazioni adeguate?
Descrivi gli scenari in cui si verificano prestazioni lente.
Come hai determinato che la piattaforma Discourse (o addirittura il tuo hosting) sia la causa delle prestazioni lente? Che il database sia un fattore limitante, ecc.

Forse potresti condividere un paio di link a webpagetest.org come punto di partenza.

Sebbene questo sia tecnicamente corretto, penso che manchi il punto dal punto di vista della crescita della comunità e dell’esperienza utente (UX). C’è molto da dire riguardo al volume di traffico che le nostre comunità attirano dai motori di ricerca.

A mio avviso, è importante che la prima visita a quel link venga caricata rapidamente.

E infatti è così: escludendo comunità ricche di risorse come NPN, non vedo molte comunità Discourse con tempi di caricamento completi superiori a due secondi, e il DOMContentLoaded è tipicamente ben sotto i 1000 ms.

WebPageTest è una metrica terribile: apri un browser, ispeziona il codice sorgente della pagina, passa alla scheda Rete, svuota la cache ed esegui un ricaricamento forzato. Tutti i numeri sono proprio sotto i tuoi occhi.

Stai suggerendo che ci sia un problema, ma non ci stai fornendo alcun esempio. Sarebbe davvero utile se potessi supportare queste affermazioni con dati concreti.

È uno strumento perfettamente valido che può essere utilizzato come punto di partenza o per approfondire scenari specifici (sistema operativo, posizione, larghezza di banda, latenza) se lo desideri. È anche un modo comodo per condividere un risultato da uno scenario controllato affinché altri possano esaminarlo.

La scheda Rete è anch’essa perfettamente valida, purché tu comprenda che stai vedendo letteralmente solo l’esperienza “tua”, probabilmente dal tuo desktop tramite la connessione che stai utilizzando. È un buon test di verifica, richiede solo pochi secondi e potrebbe o meno fornirti ciò di cui hai bisogno per ottimizzare per i tuoi visitatori.

Entrambi hanno dei meriti. Nessuno dei due è affatto una “metrica terribile”.

@eextra vale anche la pena menzionare che dovresti avere un contatore del tempo di risposta visibile quando sei loggato su Discourse come amministratore. Hai inoltre la possibilità di registrare rapporti sulle prestazioni di NGINX tramite il pannello di amministrazione.

Cosa c’è di così negativo nei siti di test della velocità dei siti web?

Volevo aggiungere il mio contributo perché li uso spesso e li trovo utili. Soprattutto quelli che effettuano test da più località e ripetono i test più volte in una singola sessione.

Trovo interessante che ottenga risultati diversi rispetto al mio browser quando si tratta di ottimizzazioni che coinvolgono 100-200 ms, anche se sembrano accurati per tempi superiori a questa soglia.

A volte opto per ottimizzazioni che soddisfano i siti di test della velocità dei siti web perché, se tutti riportano misurazioni simili, presumo che anche Google lo faccia, anche se potrei sbagliarmi dato che il suo algoritmo è chiuso.

Ruby è notoriamente un linguaggio lento, Discourse utilizza una quantità enorme di JavaScript, e non è affatto controverso il fatto che il tempo di caricamento iniziale di un forum Discourse sia lungo e che la velocità su mobile sia scarsa. Penso che dire alle persone che otterranno ottimi risultati di velocità con l’hardware giusto non sia molto accurato, dato che sto navigando su Meta in questo momento e risulta effettivamente lento rispetto, ad esempio, a un forum programmato in Go lol. Uso Discourse perché funziona bene, ha un’ottima protezione anti-spam, funzionalità eccellenti e richiede poca manutenzione. Non l’ho mai considerato veloce, né la maggior parte dei visitatori dei forum lo considera un “app” quando clicca sul primo link di Google per visitare il sito.