Cosa sta causando il tempo di "attesa" prima che il mio HTML venga caricato?


12

Ho un sito web che sembra caricarsi molto lentamente. Quando eseguo un test di velocità su di esso, vedo che sembra esserci un vuoto di 6 secondi prima del caricamento dell'HTML. Immagini e script JS si caricano molto velocemente dopo quel punto.

Puoi vedere nella foto sotto le barre gialle del "tempo di attesa":

Il caricamento del file HTML ha richiesto più di 5 secondi, mentre la maggior parte delle altre risorse si carica in meno di 1 secondo

Questo sembra essere coerente, indipendentemente dal contenuto HTML nella pagina.

Questo sito utilizza un CMS (ModX Revo), pertanto l'HTML viene effettivamente archiviato in un database SQL e creato da PHP, ma non ho mai riscontrato questo problema prima.

Qualcuno saprebbe cosa sta causando questo e come potrei accelerarlo?


questa è una cosa nuova? Cioè, queste pagine sono state eseguite normalmente prima e ora funzionano male? O si tratta di una nuova installazione / sito? Puoi dirci di più?
closetnoc,

1
A meno che non ci sia qualche rete di intermediazione che lo regge, questo sembrerebbe essere il tempo impiegato dal server per generare la risposta? Dici "non importa quale sia il contenuto HTML" - contenuto HTML attraverso il tuo CMS o letteralmente una pagina HTML statica? Proverei sicuramente una semplice pagina HTML statica "Hello World" se non l'hai già fatto. Si noti inoltre che i server di Pingdom si trovano dall'altra parte del mondo in Australia (che presumo sia dove sei ospitato)?
MrWhite,

1
IMO il problema è principalmente con quella pagina - il tuo server / CMS sembra impiegare molto tempo per generare la risposta. Query SQL inefficiente ?? Altre pagine del tuo sito sembrano essere relativamente veloci. (?)
MrWhite,

Risposte:


13

Il termine tecnico di attesa è definito come tempo al primo byte e determina la capacità di risposta di un server Web o di altre risorse di rete.

Alcuni motivi comuni per cui potresti vedere l'ora esatta del primo byte:

  • Rete sovraccaricata (normalmente hosting condiviso)
  • Server di configurazione errata
  • Distanza da te e dal server (la posizione geografica gioca un ruolo secondario)
  • Errori del server (hop)

Generalmente questo problema si riscontra spesso nell'hosting condiviso a causa della grande quantità di siti Web e di persone che li visitano, il che ovviamente aumenta il tempo di byte della rete. Un'altra possibile causa è un errore sulla rete da qualche parte, come un hop o perché il tuo server non si trova nella posizione del tuo pubblico di destinazione, ad esempio un server "BUONO" nel Regno Unito avrà un tempo di byte inferiore rispetto a un server americano destinato agli utenti nel Regno Unito, a causa della distanza che i dati devono essere inviati e ricevuti (normalmente un aumento di circa 100-200 ms).

Forse un momento per ottenere un nuovo host

In passato devo passare da un server all'altro a causa del ritardo tra il primo e il primo byte, potresti trovarti nella situazione di dover scegliere un nuovo host web o aggiornare il tuo pacchetto attuale.

Test affidabili

Testare la velocità del tuo sito Web dalla tua banda larga domestica è molto parziale perché potrebbe essere un problema con la tua banda larga che non risponde al sito web. Dovresti testare il tuo sito Web utilizzando più connessioni da più server ... Raccomando il test della pagina Web e l'esecuzione di più test contemporaneamente da posizioni diverse e molti nel pubblico di destinazione. Questo ti darà una migliore panoramica di cosa sta succedendo, se il suo primo byte ti consiglio di contattare il tuo host web prima di ogni altra cosa.

Il ping e la traccia indirizzano il server

Se si tenta di eseguire un ping sul server, i risultati potrebbero essere visualizzati o meno, il ping utilizza ICMP anziché UDP o TCP, il che significa che non è come interrogare il server sulla porta 80 su cui verrà eseguito httpd. È possibile utilizzare la route di traccia per identificare eventuali server sulla route che potrebbero causare l'aumento del primo byte, di nuovo ... non interroga il server httpd sulla porta 80 e se traceroute utilizza Windows utilizzerà ICMP e Mac / Linux le macchine useranno UDP. Vale la pena testarlo perché è una cosa così semplice e veloce da fare, ma se i risultati tornano bene, non significa necessariamente che non c'è nessun problema da qualche parte.


Ciao @SunWKim Ho aggiornato la mia risposta con quello che mi hai chiesto. Guarda in fondo alla mia risposta.
Simon Hayter

Sono d'accordo sulle tue ragioni comuni per il tempo al primo byte. In questo caso, tuttavia; Credo che abbia più a che fare con il codice JavaScript.
Dom

Il primo byte può essere causato da una vasta gamma di cose, ma JavaScript non è uno di questi poiché la risposta dell'intestazione è prima degli elementi incorporati come JavaScript, CSS, Immagini e così via. Non confondere il primo byte con elementi e file effettivi.
Simon Hayter

Non sto confondendo i due. Forse se hai visitato mbff.com.au e hai visto di persona, potresti essere convinto che non è un problema di tempo al primo byte. Il ritardo si verifica dopo la prima risposta dell'intestazione.
Dom

1
The delay is occurring after the first header responsequindi quello non è il primo byte. Il primo byte è la prima risposta.
Simon Hayter

4

1) Hai Adobe TypeKit che non si carica in modo asincrono con il codice corrente. Prova a sostituirlo con il codice asincrono avanzato: http://help.typekit.com/customer/portal/articles/649336-embed-code

Questo codice di incorporamento standard sfrutta il fatto che i tag bloccano l'ulteriore rendering della pagina per aiutare a prevenire il FOUT [Flash of Unstyled Text]. Durante il caricamento dello script Typekit, il rendering della pagina è bloccato, pertanto il testo non inizierà a essere visualizzato con i caratteri di fallback.

2) Test con il nuovo TypeKit. Com'è il tempo di caricamento adesso? Meglio? Vai al passaggio 3.

3) Sostituisci il tuo Google Analytics con un JavaScript aggiornato che fornisce la sintassi asincrona più recente: https://developers.google.com/analytics/devguides/collection/gajs/

4) Test. Il caricamento della pagina è ancora migliore?

5) Infine, considera l'ottimizzazione di immagini come pattern.jpg. L'ho convertito in un file PNG ed è stato in grado di ridurre le dimensioni del file da 199 KB a 56 KB. Ciò riduce il tempo necessario per ricevere il file: https://www.dropbox.com/s/i06jx509bmprhhh/pattern.png?dl=0

Spero che possa aiutare.


3

Elementi PHP vs. Non-PHP

Se confronti i tempi di caricamento delle risorse non PHP con i tempi di caricamento basati su PHP, vedrai che il server risponde rapidamente se PHP non è coinvolto.

Questo in genere indica un problema interno al tuo script PHP.

Il problema potrebbe riguardare il livello PHP o il database. L'uso di strumenti di debug avanzati come XDebug o NewRelic può aiutarti a individuare rapidamente il collo di bottiglia.

Il tempo necessario al primo byte può essere causato da vincoli hardware, scarsa configurazione o codice inefficiente. Sull'hosting condiviso sono molto probabilmente vincoli hardware e configurazione scadente.

In ogni caso, risolvere il problema di solito significa uno o tutti:

  • Più hardware
  • Migliore programmazione
  • Aggiungi cache

L'hardware più veloce è una soluzione ovvia ma spesso costosa se si utilizza già risorse dedicate.

Una migliore programmazione potrebbe non essere possibile se il problema è interno al codice che non si mantiene o manca di risorse per gli sviluppatori.

La memorizzazione nella cache consente di ridurre il numero di richieste che devono raggiungere le risorse sottostanti e con scarse prestazioni.

analisi

Quando si utilizzano strumenti di test, assicurarsi di eseguire più corse. I picchi di server temporanei e di rete possono facilmente portarti lungo il percorso sbagliato, quindi vuoi provare a fare una media di questi.

Ospitando

Se utilizzi un account di hosting condiviso, considera la possibilità di passare a servizi di tipo cloud o VPS in modo da avere una visione migliore dei problemi di prestazioni. A meno che non si utilizzi una tecnica di memorizzazione nella cache (servizio di tipo CDN o Cloudflare), la correzione dei problemi di prestazioni sui sistemi di hosting condiviso di massa può essere molto impegnativa in quanto non si ha un controllo sufficiente del server.


-1

Prova a impostare i cookie di terze parti su solo visitati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.