PDA

View Full Version : Con una pagina pesante tutto il sito rimane in attesa


cenex
07-03-2016, 14:48
Salve ragazzi,
ho un social network fatto con un CMS non molto conosciuto ma molto personalizzabile.

Ho spostato il tutto su un server 10 volte piu potente e ora quando vado a caricare una pagina molto pesante (la più pesante è la newsfeed del profilo dell'admin che ha tutti gli amici della community) tutto il sito si ferma.

Le varie pagine si caricano in un nanosecondo quindi non danno problemi, pero' quella della newsfeed dell'admin si carica in 19 secondi perchè ha un sacco di richieste mysql (ammetto, su questo aspetto il cms è fatto proprio male ma mi sta bene cosi, non devo guardarla sempre).

Con il vecchio server quella stessa pagina ci metteva almeno il doppio pero' potevo continuare a navigare tranquillamente nelle altre pagine del sito che neanche mi accorgevo che il server era sotto carico.
Ora invece se la carico tutto il sito si ferma finchè non l'ha caricata del tutto.
Resta come in attesa.

Il mio server ha Ubuntu 14 con il plesk 12, apache + nginx e php 5.5 di default.
La cpu è sempre a 0.50. E' un server con 32gb di ram molto potente quindi non è quello il problema, ma secondo me proprio la configurazione.

C'è un parametro dove posso agire secondo voi?

Vi ringrazio moltissimo per l'aiuto...

Simone

Tasslehoff
13-03-2016, 15:29
Credo sia impossibile ipotizzare una causa senza sapere il tipo di prodotto che usi, e anche avendo questa informazione mancherebbero eventuali dettagli su customizzazioni e altre millemila variabili.

Io fossi in te comincerei con il monitorare attentamente la situazione.
Armati di Fiddler o un qualsiasi altro sniffer http e verifica attentamente lato client cosa succede, quando fai quella richiesta che ti carica così tanto il server cosa succede?
Che http response danno le risorse che richiami?
Sono tutte raggiungibili oppure ci sono dei timeout?

Lato server cerca di analizzare in modo approfondito il carico della macchina, armati di htop e nmon e cerca di incrociare i picchi di carico con l'analisi dei log di accesso al sito.

Questo è il punto di partenza per circoscrivere il problema, poi le soluzioni possono essere millemila, di livello sistemistico indagando cosa può migliorare le performance, applicativo cercando di ottimizzare query e indici sul db e tante altre.

Dal dato di carico che dici presumo si tratti di una macchina GNU/Linux, quello che tu indichi come 0.5 è il valore di load di sistema?
Oppure è il valore di occupazione cpu mostrato chessò da top?

In entrambi i casi non è affatto normale, avere un load costante di 0.5 è indice di scarse risorse per il carico a cui è sottoposto il server, oppure di anomalie (es mount nfs irraggiungibili).
Se si tratta del valore di load di sistema hai notato se la cpu è comunque scarica?