PDA

View Full Version : WebServer lentissimo : Da cosa può essere dovuto se....?


The X
14-10-2004, 12:01
Dopo circa 10 giorni di up, 1 mio webserver (debian woody) in cui gira apache+php+mysql ed anke qmail+vpopmail è diventato lentissimo. Per accedere al sito (dominio) principale (che occupa il 90% della banda totale usata da tutti i domini nonchè provoca il 90% degli accessi totale) ci metto un casino ED ogni query al db me la risolve in troppo tempo.

Controllando tramite il comando "TOP" vedo ke la cpu sta mediamente sul 90% in idle e la ram libera varia da 5 ai 15Mb (swappa cmq pokissimo).

Il sito, x rendere l'idea, ha 1 media d 10.000 accessi al giorno.

SE riavvio la macchina TUTTO ritorna veloce come all'inizio.

Qlc ha idea di quale potrebbe essere la causa di tutto ciò ?

TNK

bort_83
14-10-2004, 13:52
potrebbe essere l'accesso ai dischi ?

cmq se come dici tu swappa pochissimo.. il fatto già sl che swappi non è bene...

in che condizioni hai fatto i test ?

sanxius
14-10-2004, 14:34
hai guardato se non ha fatto dei log kilometrici?
e sopratutto lo swapping non ci dovrebbe essere....

The X
14-10-2004, 16:17
Originariamente inviato da bort_83
potrebbe essere l'accesso ai dischi ?


Beh, come dischi uso 2 maxtor 80Gb in raid0 (mirroring) su un controller Promise Fast Trak TX4

Originariamente inviato da bort_83
il fatto già sl che swappi non è bene...

Cosa vuol dire sta frase che nn la capisco ? ^_^


Originariamente inviato da bort_83
in che condizioni hai fatto i test ?


Durante il funzionamento del webserver, durante 1 dei momenti di media-alta frequenza del sito principale...

The X
14-10-2004, 16:24
Originariamente inviato da sanxius
hai guardato se non ha fatto dei log kilometrici?

A dire il vero logga 1 casino, ma tanto tanto... Per rendere l'idea mi produce 1Mb al minuto di access.log tant'è vero ke ogni giorno devo ruotare i siti. Però i log mi servono perchè uso awstat e tutte le voci sono necessarie.. Cmq sto parlando d 1 sito che ha 1 media di 10.000 visite al giorno...

Originariamente inviato da sanxius
e sopratutto lo swapping non ci dovrebbe essere....

Beh, swappa si e no di 2Mb quindi per me è come se nn c fosse...

l.golinelli
14-10-2004, 16:38
A che livello di log hai impostato Apache?
Di solito si mette warning
Che ver di Apache?

The X
14-10-2004, 16:46
Originariamente inviato da l.golinelli
A che livello di log hai impostato Apache?
Di solito si mette warning
Che ver di Apache?

LogLevel Warn

Apache 1.3.26 (quello fornito dalla debian woody)

l.golinelli
14-10-2004, 16:48
Originariamente inviato da The X
LogLevel Warn

Apache 1.3.26 (quello fornito dalla debian woody)

Se fosse stato Apache 2 si poteva rivedere di + le performance...

Cmq se il problema sembra essere solo Apache...

Come hai impostato il numero di processi minimi, massimi e quelli in attesa di connessione?

l.golinelli
14-10-2004, 16:49
Originariamente inviato da l.golinelli
Se fosse stato Apache 2 si poteva rivedere di + le performance...

Cmq se il problema sembra essere solo Apache...

Come hai impostato il numero di processi minimi, massimi e quelli in attesa di connessione?

Se invece e' un prob di MySQL allora non saprei... :rolleyes:

The X
14-10-2004, 16:58
Originariamente inviato da l.golinelli
Cmq se il problema sembra essere solo Apache...


Il problema nn so qual'è... lo chiedo a voi apposta ^_^

Potrebbe anke essere un problema d rete ovvero troppo traffico che intasa la macchina... Boh, faccio ipotesi....


Originariamente inviato da l.golinelli
Come hai impostato il numero di processi minimi, massimi e quelli in attesa di connessione?

KeepAlive on
MaxKeepAliveRequests 200
KeepAliveTimeout 15
MinSpareServers 10
MaxSpareServers 25
StartServers 2
MaxClients 150
MaxRequestsPerChild 10000

Penso d averti dato tutte le info a riguardo del httpd.conf

sanxius
15-10-2004, 06:45
Originariamente inviato da The X
Il problema nn so qual'è... lo chiedo a voi apposta ^_^

Potrebbe anke essere un problema d rete ovvero troppo traffico che intasa la macchina... Boh, faccio ipotesi....




KeepAlive on
MaxKeepAliveRequests 200
KeepAliveTimeout 15
MinSpareServers 10
MaxSpareServers 25
StartServers 2
MaxClients 150
MaxRequestsPerChild 10000

Penso d averti dato tutte le info a riguardo del httpd.conf


sto MaxRequestPerChild mi sembra troppo esagerata...
tu hai 10.000 visite per giorno vero?
e tu dici ad un figlio di prendersi al max 10.000 richieste?!?!?

ti conviene diminuire quella cifra....

poi ti consiglierei di provare per esclusioni...ovvero per un giorno fai meno logs...e vedi se le performance giran meglio se no procedi per altri motivi.

Ovvio che sto mettendo le soluzioni nel caso sia Apache il colpevole...

prova a fare qualche richiesta al server e vedere come ti risponde...
ovvero.
Pagina HTML normale?
Pagina PHP?
Pagina con query Sql...etcetc...cosi' vedi se c'e' qualche collo di bottiglia:D

Purtroppo in era di internet bisogna cercare procedendo per esclusione...

ciao e buon lavoro

bort_83
15-10-2004, 09:02
e invece per quanto riguarda la rete.. esistono diverse applett per i desktop grafici che fanno grafici sul carico di rete...

da shell nn saprei... ma di sicuro esiste qualcosa...

al max prova a vedere facendo dei ping...


...

cmq sia per quanto riguarda lo swap.. sicuramente anke solo swappare di poco.. rallenta.. soprattuto se già dici che deve scrivere 1 Mb di log al minuto...

The X
15-10-2004, 10:42
Originariamente inviato da bort_83
e invece per quanto riguarda la rete..

al max prova a vedere facendo dei ping...

...

cmq sia per quanto riguarda lo swap.. sicuramente anke solo swappare di poco.. rallenta.. soprattuto se già dici che deve scrivere 1 Mb di log al minuto...

2 domande :

1) Bloccare da firewall l'icmp può aiutare ?

2) Come faccio x dirgli d non swappare ?

sanxius
15-10-2004, 11:27
Originariamente inviato da The X
2 domande :

1) Bloccare da firewall l'icmp può aiutare ?

2) Come faccio x dirgli d non swappare ?

1) non saprei, devi verificarlo sul campo
2) credo ceh ci sia una opzione Noswap.

da www.apache.org

Sites which need to serve more than 256 simultaneous requests may need to increase MaxClients, while sites with limited memory may need to decrease MaxClients to keep the server from thrashing (swapping memory to disk and back).




The single biggest hardware issue affecting webserver performance is RAM. A webserver should never ever have to swap, as swapping increases the latency of each request beyond a point that users consider "fast enough". This causes users to hit stop and reload, further increasing the load. You can, and should, control the MaxClients setting so that your server does not spawn so many children it starts swapping. The procedure for doing this is simple: determine the size of your average Apache process, by looking at your process list via a tool such as top, and divide this into your total available memory, leaving some room for other processes.




Setting MaxRequestsPerChild to a non-zero limit has two beneficial effects:

* it limits the amount of memory that process can consume by (accidental) memory leakage;
* by giving processes a finite lifetime, it helps reduce the number of processes when the server load reduces.




ti ho riportato i vari motivi...

quanta memoria hai sul computer?

5-15 mb liberi di ram mi paiono davvero pochi.....fossi in te andrei sui 50 mb liberi.... per precauzione :D

The X
15-10-2004, 11:44
Ho 512Mb...