Come determinare il collo di bottiglia delle prestazioni?

Ho provato a cercarlo, ma non ho trovato nulla pubblicato di recente, quindi ho pensato di chiedere per determinare cosa sia normale e atteso.

Sono appena arrivato da altri forum e il caricamento della prima pagina è ragionevolmente veloce, ma con Discourse la pagina si carica, ma mi viene presentato un cerchio che gira mentre attende il rendering della pagina - non sono sicuro se si tratti di un ritardo del server o di un ritardo del client / JS nella costruzione della pagina in base al risultato del server restituito.

Il ritardo è di circa 5-10 secondi, ma in generale le prestazioni sono buone dopo.

Se il problema è probabilmente del server/hosting, qual è il problema normale, dato che le metriche su tutto sembrano basse. CPU, disco e memoria non sembrano essere al massimo, quindi non sono sicuro dove investire $$ se il risultato non è realmente correlato al server. Qualche consiglio per monitorare o osservare le metriche che possono aiutare a mostrare dove Discourse sta impiegando il suo tempo ad aspettare qualcosa??

Puoi vedere quanto è lontana la prima pagina qui. Una CDN potrebbe aiutare.

Quanto lontano? Qui dove?

A quale versione di Discourse ti trovi?

Quanti post ci sono negli argomenti che stai guardando/testando?

Veloce e Meta, ho il sospetto :wink:

1 Mi Piace

Ultima versione 2.8.x e solo circa 30 utenti. Sto eseguendo su un vCPU dual core con 2 GB di RAM e disco SSD.

Come accennato, tutte le metriche sul server non mostrano alcun carico, quindi non capisco perché ci vogliano 5 secondi di caricamento prima che la pagina sia completamente renderizzata.

Quindi non c’è nulla da controllare o monitorare, basta installare e sperare che vada tutto bene??

In realtà, è più simile al fatto che il server si raffredda e io sto solo richiedendo un aggiornamento della pagina che non viene effettuato da un po’ di tempo: le parti di backend vanno in standby o simili, in modo che un uso infrequente significhi che la prima persona dovrà aspettare un po’ più a lungo del solito?

Quando dici 30 utenti, intendi utenti concorrenti o quella è l’intera base utenti?

Se si tratta di 30 utenti concorrenti, allora le tue specifiche potrebbero essere un po’ basse.

Qual è la memoria in media. 30-50-80%???

Mi è capitato di guardare le tabelle di velocità e prestazioni di G Analytics, ho notato un cambiamento da quando siamo passati da 2.2 a 2.9, un peggioramento, ma devo guardare di più. In realtà non sto riscontrando rallentamenti evidenti, se non altro sembra più veloce. Quindi cosa ne so io o cosa ne sa G Analytics, eh!

Ho anche letto del limite di 10.000 post per argomento, che se hai molti post, credo debba caricare l’intera cosa in memoria prima di visualizzarla, e questo viene percepito come lentezza a prima vista.

Trovo che una volta caricato qualcosa, poi è tutto veloce. Non sono un esperto, ma potrebbe anche essere il browser a causare e tutti i tipi di altri trucchi del mestiere impiegati per offrire l’esperienza di discourse.

È un VPS presso un provider o qualcos’altro? Come è stato installato? Sapere quali 2vcpu sono utili, non tutti i processori sono uguali.

C’è qualcosa tra l’istanza e i client? Un proxy inverso o qualcosa come CloudFlare?

1 Mi Piace

Ho finalmente aperto gli Strumenti per sviluppatori e posso vedere alcuni messaggi di errore… sembra che a) i font siano mancanti o non trovati e b) che stia usando l’IP invece del FQDN corretto, di cui non sono sicuro se l’IP sia corretto

The FetchEvent for "https://35.212.139.150/fonts/Roboto-Regular.ttf?v=0.0.9" resulted in a network error response: the promise was rejected.
Promise.then (async)
(anonymous) @ Router.mjs:60
The FetchEvent for "https://35.212.139.150/fonts/Roboto-Bold.ttf?v=0.0.9" resulted in a network error response: the promise was rejected.
Promise.then (async)
(anonymous) @ Router.mjs:60
NetworkFirst.mjs:167 Uncaught (in promise) no-response: no-response :: [{\"url\":\"https://35.212.139.150/fonts/Roboto-Regular.ttf?v=0.0.9\"}]
    at a.makeRequest (https://community.hubivue.com/javascripts/workbox/workbox-strategies.prod.js:1:2145)
makeRequest @ NetworkFirst.mjs:167
color_definitions_light_4_1_530ebcc4a553d42866a6f343d784841cf5c0b816.css:1          GET https://35.212.139.150/fonts/Roboto-Regular.ttf?v=0.0.9 net::ERR_FAILED
NetworkFirst.mjs:167 Uncaught (in promise) no-response: no-response :: [{\"url\":\"https://35.212.139.150/fonts/Roboto-Bold.ttf?v=0.0.9\"}]
    at a.makeRequest (https://community.hubivue.com/javascripts/workbox/workbox-strategies.prod.js:1:2145)
makeRequest @ NetworkFirst.mjs:167
color_definitions_light_4_1_530ebcc4a553d42866a6f343d784841cf5c0b816.css:1          GET https://35.212.139.150/fonts/Roboto-Bold.ttf?v=0.0.9 net::ERR_FAILED

VM di Google Cloud e niente tra l’host e il web / nessuna CDN

Ok, quindi sembra che tu stia ospitando questa istanza su Google.

Qualcuno ha provato a installarla sull’indirizzo IP prima del nome DNS?

1 Mi Piace

Lontano… ho reimpostato le scelte dei caratteri sui valori predefiniti (cioè Arial) e tutto funziona correttamente. Sembra un bug o qualcosa di strano nella selezione dei caratteri durante l’installazione. Caso chiuso e per ora mi accontenterò di Arial.

1 Mi Piace

Probabilmente. Non sono sicuro. Se questo è un problema, c’è un modo per ripristinarlo?

Dipende da come sono passati all’uso dell’hostname dopo aver tentato di usare l’IP.

Questa installazione è stata eseguita seguendo i passaggi nell’Installazione Standard? Parlerei con chiunque abbia assemblato l’istanza per scoprire cosa è stato fatto. L’IP potrebbe essere ancora referenziato altrove.

1 Mi Piace

C’è un comando per ripristinare l’installazione o risolvere questo problema? Sembra assurdo non poter più cambiare il nome host. È una limitazione voluta?

Si noti che le prestazioni ora sono buone, dato che vengono utilizzati i font di base: i problemi sembrano correlati all’uso dei font Google Roboto.

1 Mi Piace

Immagino che dovrei semplicemente seguire questa guida più o meno…

Non può fare male provare, ma se non si conosce la storia dell’istanza, non possiamo nemmeno confermare se si sta eseguendo un’installazione ufficialmente supportata.

1 Mi Piace