- Home
- Categorie
- Coding e Sistemistica
- Hosting, Server e Domini
- Primo byte e carica completa di pagina
-
Primo byte e carica completa di pagina
Buon giorno
Dalla settimana scorsa il mio sito in Joomla ha cambiato server (prima Centos e adesso Debian), e ho notato una variazione nella velocità di carica delle pagine.
Per misurare la carica delle pagine uso l'Addon lori di Mozilla e adesso mi da delle velocità di carica del primo byte molto prossime alla velocità di carica della pagina completa (8.98 e 9.9 (267 Kb), 5.96 e 7.10 (233 kb), 4.87 e 6.42 (243 kb)) mentre nel server anteriore magari il primo byte arrivava prima ma la pagina finiva di completarsi piu o meno uguale. A cosa può essere dovuto?
-
Può dipendere dalla rete a cui è collegato il server, oppure a scarse performance del server stesso.
-
Hola
Grazie della risposta ma direi che possiamo scartare la rete, la farm è la stessa
-
Hola
Io pensavo piuttosto a un problema con Mysql, ho appena caricato una pagina dove il primo byte è arrivato dopo 13,3 sec e la pagina intera dopo 16,38.
-
Puoi fare uno stress test in locale di mysql e vedere che succede.
-
Hola
Grazie paolino, mi consigli qualche software per fare stress test su xamp?
-
Puoi usare questo http://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html
-
Hola
Grazie ancora
-
Ciao,
i fattori di produzione delle pagine dipendono da molti fattori.
Va analizzata la filiera rete, server, file sistem, server http, scripting language (nel caso di joomla PHP), DB nel tuo caso mysql.Procedi con dei test personalizzati creandtoti delle pagine adhoc.
Testa la latenza della rete, se non hai a disposizione gli strumenti dovrai testare la rete,il server,il file system ed il server http contempoarneamente.
Sarà interessante rilevare la latenza ma sarà difficile separare il pempo di produzione ed il tempo di trasmissione. per questo test utilizza pagine statiche. Prova a caricare immagini che rimangono in cache e confronta i tempi di risposta con il codice 304 dovresti ricavare empiricamente il tempo di produezione e quello di trasmissione.Procedi quindi alla verivica della capacità di elaborazione di PHP inviando la stessa immagine. Dovresti vedere quanto carica php.
Infine prova ad estrarre l'immagine dal DB dovresti vedere cosa carica mysql.
Per questi test utilizza ab (apache benchmark) ATTENZIONE PUOI AMMAZZARE IL SERVER non esagerare tieno conto di quati utenti intendi servire contemporaneamente.
Tieni presente che ottimizzare la filiera http php mysql è una cosa molto complessa spero di esserti stato utile.
blindato
-
Hola
Grazie blindato per la risposta, ho però qualche problema di comprensione (magari so i nomi tecnici in spagnolo ma non in italiano) per esempio: cosa sono la latenza e l'immagine del db?
-
Per latenza di rete si intende il tempo necessario ad un pacchetto che parte da una sorgente (il tuo pc) per raggiungere il server. Tale pacchetto deve attraverase divesi apparati (hop). maggiore è la qualità minore sarà il tempo naturalmente anche la distanza ha influenza.
Eccoti alcuni acronimi:
Connection Time (CT): il tempo medio necessario a stabilire une nuova connessione TCP tra un client (o un insieme di client) e un serverApplication Response Time (ART): tempo occorso al server e all'applicazione per rispondere ad una richiesta applicativa
Round Trip Time (RTT): tempo intercorso nella tramissione di pacchetti di andata e ritorno tra il client e il server
Retrasmission Delay (RD): tempo medio necessario per ritrasmettere con successo un pacchettoche inizialmente era andato perso
Per immagine nel DB intendevo una immagine (foto) salvata in un campo BLOB
Ciao
-
Grazie ma è un po complicato per me, comunque ho notato che Google Analytics mi rallenta considerevolmente la carica dell'intera pagina e nei rapport mi da diverse pagine che non si sono aperte del tutto, lo script attuale è:
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-xxxxxxx-1");
pageTracker._setDomainName("xxxxxxx.xx");
pageTracker._trackPageview();
</script>il setdomainName é perche ho un sottodominio
-
Hola
Trovato, mi mancava } catch(err) {} alla fine dello script