Newsgroup: it.lavoro.professioni.webmaster
Titolo: Sito lento in apertura e consumoso di cpu...

Ciao
ho un sito in Wordpress (che già di suo usa un sacco di risorse) a cui 
ho messo un tema che richiede ancora più risorse cpu. Lo so, è da 
pazzi, ma sto cercando di ottimizzarlo facendo un po' di debug ma non 
riesco a capire una cosa:
quando apro una pagina, usando firebug e la scheda Net, vedo che la 
primissima richiesta che è "get 
www.1e2.it
" ci mette un sacco di 
secondi e non riesco a capire come mai. Tutte le altre richieste poi 
scorrono velocemente.
Da che cosa può dipendere?
Ho un server Debian 5 con APC come opcode cache + un plugin di 
wordpress per la cache di pagine e database. Il server ha un core 
dedicato di uno Xeon E5530 da 2,4GHz con 1 gb di ram e ogni volta che 
apro una pagina il consumo della cpu sale anche fino al 50%.
Mi potete dare una mano a capire?

 Da che cosa può dipendere?
Problemi di dns?
Bye.


ma non mi pare, il sito viene agganciato subito dopo la richiesta del 
browser, solo che poi prima di procedere ci mette svariati secondi.
Si può vedere come venga pingato bene anche da servizi web come 
http://network-tools.com/


A me pare tutto regolare, mi da 0.264 s come time to first byte (mazza, 
è un tempo stratosferico, ma sei in hosting normale o cloud?)
Per il resto, a me impiega sugli 8 / 10 s a caricarsi la home, con 63 
richieste http, tra gli 800 e i 1400 kb, di cui 300 e passa solo di js 
(ad un altro refresh mi ha sparato fuori 20 files js per un totale di 
636 kb: ridicolmente eccessivo, cerca di capire come fare a meno di 
tutti sti files) e la bellezza di 13 domini diversi da cui recuperar 
'roba' (molto tempo viene perso qui, ma anche senza queste chiamate 
esterne è piuttosto lento).
Installa Pagespeed e Yslow su firebug (per vedere dove puoi intervenire)
Prova a vedere se esiste un plugin di wordpress che integri 
smartoptimizer (
http://farhadi.ir/works/smartoptimizer
).
Da solo ti consente di sistemare molte cose che sarebbe piuttosto 
laborioso sistemare in autonomia (non è che faccia miracoli, a meno che 
il sito sia messo veramente male, diciamo che è utile in caso di grandi 
numeri a contenere le risorse (soprattutto in termini di traffico e 
banda, come controparte però ha un aumento di uso di cpu, quindi se già 
sei messo male da quel punto di vista, devi valutare bene se ne vale la 
pena).
Dove smartoptimizer dà buoni risultati è il successivo caricamento di 
pagine / files già caricati, ma sul primo accesso, a parte la 
compressione via gzip di html/js/css (che comunque può dare buoni 
risultati se già non la fai) non ha grande impatto, quindi devi lavorare 
anche sui contenuti che servi

 
http://network-tools.com/
Ho dato un'occhiata con firebug. Un paio di consigli:
- Sposta tutti i javascript appena prima del tag </html> (togliendoli 
quindi dall'<head>).
- Sposta il google analytics per ultimo.
- Non so cosa sia CavalryLogger, ma carica un sacco di js. Se ha a che 
fare con Facebook, valuta di metterlo in un iframe, in modo che non 
rallenti il caricamento di tutto il resto.
Bye.


Grazie, ci darò un'occhiata, non lo conoscevo.

 - Non so cosa sia CavalryLogger, ma carica un sacco di js. Se ha a che 
nemmeno io so cosa sia :-O ma sicuramente se carica tutti quei js è una 
cosa di facebook (maledetto...) che già si trova in un iframe.
Ma secondo te, ti sembra lento il blog?

 mio uso solo 3 domini come CDN.
Prova a disattivare tutto ciò che riguarda facebook e guarda come 
variano le performance. Se più del 80% dei tuoi problemi sono dovuti a 
facebook, allora probabilmente non ha molto senso spaccarsi la testa per 
il restante 20%.

 Ma secondo te, ti sembra lento il blog?
No. A me si apre abbastanza velocemente, anche se ci mette un po' a 
"finire" la pagina, caricando le immagini e i widget esterni, ma e` 
abbastanza normale.
Bye.


tieni conto che ho fatto installare APC e ho messo il suo file 
temporaneo di cache in un tmpfs così i tempi di risposta dipendono 
dalla ram e non dal hard disk e quindi le pagine che ho in cache 
vengono richiamate molto velocemente.

 richiamate molto velocemente.
io farei cosï¿œ, non necessariamente in questo ordine, leggi prima tutto 
per avere una idea:
- metto un tema minimale
- tolgo tutte le risorse caricate dall'esterno (banner, facebook, iframe)
- tail -f sul file di error di php con error level a warning, sul 
access_log di apache
- top
- se posso anche iostat
insomma, tieni sott'occhio tutte le componenti.
- simulo le richieste da un altro server con wget per prendere solo la 
pagina html senza grafica o altro e analizzo la situazione, testando 
cosï¿œ il solo stack LAMP
- faccio la richeista da un altro server con wget in modalitï¿œ "salva 
tutta la pagina" (o eventualmente da un browser) e analizzo la 
situazione, testando lo stack LAMP e l'interazione con il browser
- il db ï¿œ ospitato sul tuo server o ï¿œ esterno ?
- abiliterei il trace delle query e le rifarei a mano con DESC davanti 
per capire se manca qualche indice
- verificherei che le istruzioni per il caching siano corrette (expires, 
etag...)
- verificherei che la ram disponibile sia ok, e non ci sia swap usata
- farei dei test di carico sulla cpu, lan e disco per vedere quanto 
riescono a reggere
- metterei un cron su un server che ogni 10 minuti mi scarica la 
home-page e una sottopagina per verificare se nell'arco delle 24h o nei 
weekend i tempi di risposta cambiano
scusa se alcune di queste cose sono basilari... ma io procederei cosï¿œ...