[Supporto] Ottimizzazione apache2

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns e altro.
Scrivi risposta
Avatar utente
Vardar
Prode Principiante
Messaggi: 33
Iscrizione: lunedì 19 maggio 2008, 8:29
Località: Torino

[Supporto] Ottimizzazione apache2

Messaggio da Vardar »

Salve a tutti, avrei bisogno di alcuni consigli sulla configurazione ed ottimizzazione di un ubuntu server installato come server lamp.

Faccio un breve excursus del mio problema... io ho da circa un paio d'anni utilizzato un server (sempre ubuntu) che aveva 1 Mb/s di banda su cui giravano alcuni siti. Con il passare del tempo il numero di utenti è andato aumentando fino ad arrivare a circa un migliaio di accessi unici al giorno (fra tutti i siti) e in momenti di inteso traffico anche ad avere un 70-80 utenti collegati contemporaneamente.
In queste occasioni il mio misero Mb/s di banda iniziava ad essere lento. Allora ho acquistato un server dedicato con processore quad core xeon 1,8 e 2 Gb di Ram. La banda che mi fornita è di 10 Mb/s (di cui 2 garantiti).

Mi sembrava un passo avanti notevole e così, tutto contento, ho installato ubuntu server anche su questo nuovo server, spostato i dns e tutto sembrava funzionare correttamente.
Purtroppo, quando si è arrivati alla fatidica soglia di circa 80 utenti connessi contemporaneamente le prestazioni del server sono drasticamente calate, a tal punto che il nuovo server risultava più lento del vecchio.

Ovviamente ho contattato immediatamente l'assistenza della web farm da cui ho acquistato il server per verificare che la banda effettivamente non abbia problemi ma, in attesa di verifiche, mi hanno consigliato di controllare la configurazione.

A questo punto, l'unica cosa che mi sembra sensato andare a toccare per migliorare le prestazioni è la configurazione di apache2, ma nonostante io abbia letto diverse cose trovate su internet ho ancora dei dubbi.

Qualcuno mi saprebbe consigliare una configurazione adeguata del file apache2.conf per un server come il mio con 2 Gb di ram?
Eventualmente, qualcuno ha qualche idea un po' più brillante della mia sul perchè il server abbia questo drastico decadimento di prestazioni quando gli utenti iniziano ad essere superiori ai 65-70 utenti?

Ringrazio anticipatamente chiunque sappia darmi qualche suggerimento.
Ultima modifica di Vardar il martedì 15 febbraio 2011, 8:16, modificato 1 volta in totale.
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: [Supporto] Ottimizzazione apache2

Messaggio da ReMichael »

Mi sembra un problema simile a questo:
http://forum.ubuntu-it.org/viewtopic.php?t=442346

Guarda se ti può essere utile.
Avatar utente
Vardar
Prode Principiante
Messaggi: 33
Iscrizione: lunedì 19 maggio 2008, 8:29
Località: Torino

Re: [Supporto] Ottimizzazione apache2

Messaggio da Vardar »

Sicuramente il topic che mi hai mandato è utilissimo, ma credo che la mia situazione sia un pochino diversa... mi spiego meglio, in quel caso l'utente scriveva che il server diventava lento ed instabile tanto da non riuscire nemmeno più ad effettuare una connessione ssh e il demone del mysql arrivava a segnare 188 come %cpu.

A me non ha mai raggiunto certi livelli, anzi, il demone mysql non aveva un uso così esorbitante di cpu e tramite ssh riuscivo a collegarvi rapidamente e senza alcun problema. Ti dico di più, nel caso che tu mi hai postato la memoria ram veniva saturata ed il server si metteva a swappare. A me questo non succede, lo swap resta a 0.
Tutti i problemi sembrano dipendere dalla mera navigazione web, per questo supponevo si potesse trattare di ottimizzazione della configurazione di apache2.conf
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: [Supporto] Ottimizzazione apache2

Messaggio da ReMichael »

Secondo me però devi fare un qualche tipo di ottimizzazione se ti risulta un problema nell'utilizzo delle risorse. Se nel tuo caso sia la memoria ram che l'utilizzo di cpu sono nella norma, penso che il problema sia la banda.
Avatar utente
Vardar
Prode Principiante
Messaggi: 33
Iscrizione: lunedì 19 maggio 2008, 8:29
Località: Torino

Re: [Supporto] Ottimizzazione apache2

Messaggio da Vardar »

Allora la cpu non mi sembra sotto stress, ho fatto anche uno stamp del top di ieri sera alle 21 (con circa 60 utenti) e il processo più esoso era il demone di mysql che segnava 3 sotto %CPU e 2.5 sotto %MEM.

La memoria ram, in effetti, era un po' piena, perchè avevo circa 1.8 M occupati su 2 disponibili, però non era ancora arrivata a swappare.

Quindi che genere di ottimizzazioni si può provare a fare?

Ho letto che passare da tabelle myisam a innodb può migliorare le prestazioni, ma la mia domanda è: posso semplicemente da phpmyadmin convertire le tabelle senza nessun problema e senza dover toccare i codici php che usano quelle tabelle?
E davvero aumenta le prestazioni? Perchè leggevo che innodb sono più pesanti di myisam.
Ultima modifica di Vardar il martedì 15 febbraio 2011, 10:32, modificato 1 volta in totale.
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: [Supporto] Ottimizzazione apache2

Messaggio da ReMichael »

Vardar80 ha scritto: O letto che passare da tabelle myisam a innodb può migliorare le prestazioni, ma la mia domanda è: posso semplicemente da phpmyadmin convertire le tabelle senza nessun problema e senza dover toccare i codici php che usano quelle tabelle?
E davvero aumenta le prestazioni? Perchè leggevo che innodb sono più pesanti di myisam.
questo non te lo so dire.. dubito che con phpmyadmin puoi passare da un motore all'altro di gestione delle tabelle. tra l'altro sono operazioni da effettuare con molta cautela, provando ad esempio prima su macchina di prova/virtuale.

Detto questo, è normale che l'utilizzo memoria sia quasi totale.. linux tende ad usare tutta la memoria a disposizione, anzi il fatto che non swappi vuol dire che da quel punto di vista non ci sono problemi.
Avatar utente
garak
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1649
Iscrizione: lunedì 13 giugno 2005, 13:37
Desktop: Gnome
Distribuzione: Ubuntu 24.04
Sesso: Maschile
Località: Roma
Contatti:

Re: [Supporto] Ottimizzazione apache2

Messaggio da garak »

Il primo posto dove guardare è il database.
Hai un log delle query lente? Se non ce l'hai, attivalo subito (magari inizia con valori bassi del timeout, poi aggiusta di conseguenza).
Una volta individuate le query lente, devi cercare di eliminarle: puoi verificare ogni query con l'apposita explain ("spiega" nella traduzione italiana di phpmyadmin), la maggior parte delle volte si tratta di indici mancanti
Avatar utente
Vardar
Prode Principiante
Messaggi: 33
Iscrizione: lunedì 19 maggio 2008, 8:29
Località: Torino

Re: [Supporto] Ottimizzazione apache2

Messaggio da Vardar »

garak ha scritto: Il primo posto dove guardare è il database.
Hai un log delle query lente? Se non ce l'hai, attivalo subito (magari inizia con valori bassi del timeout, poi aggiusta di conseguenza).
Una volta individuate le query lente, devi cercare di eliminarle: puoi verificare ogni query con l'apposita explain ("spiega" nella traduzione italiana di phpmyadmin), la maggior parte delle volte si tratta di indici mancanti
Già fatto anche questo, attivato i log e utilizzato mysqltuner per ottimizzare le prestazioni del database ma le query lente, dopo due giorni di lavoro è fermo allo 0%

Sto iniziando a pensare che non sia un problema di mysql ma piuttosto di ottimizzazione di apache... è possibile che riceva troppe richieste e quindi le metta in coda per soddisfarle tutte?

Ho anche installato apc per alleggerire il carico su apache e un pochino meglio sembra che vada, ma ancora ha un rallentamento significativo quando ci sono molti utenti.

P.S.

Mi pongo anche un altro dubbio... è possibile che tante query che interessano una stessa tabella di mysql (ad esempio come in una chat, dove tutti gli utenti scrivono e leggono sulla stessa tabella) possa causare i rallentamenti?
E in questo caso, si avrebbero rallentamenti anche di pagine assolutamente statiche (normalissimo html) che con il database non hanno alcuna relazione?

Perchè il mio dubbio che non dipenda da mysql ma proprio da apache deriva da questo: quando il sistema è lento (tieni comunque conto che dando un "top" il demone mysql è mediamente intono a 4-5 di %CPU), è lento anche nel caricamento di banali pagine statiche.
Avatar utente
garak
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1649
Iscrizione: lunedì 13 giugno 2005, 13:37
Desktop: Gnome
Distribuzione: Ubuntu 24.04
Sesso: Maschile
Località: Roma
Contatti:

Re: [Supporto] Ottimizzazione apache2

Messaggio da garak »

Vardar80 ha scritto:
garak ha scritto: Il primo posto dove guardare è il database.
Hai un log delle query lente? Se non ce l'hai, attivalo subito (magari inizia con valori bassi del timeout, poi aggiusta di conseguenza).
Una volta individuate le query lente, devi cercare di eliminarle: puoi verificare ogni query con l'apposita explain ("spiega" nella traduzione italiana di phpmyadmin), la maggior parte delle volte si tratta di indici mancanti
Già fatto anche questo, attivato i log e utilizzato mysqltuner per ottimizzare le prestazioni del database ma le query lente, dopo due giorni di lavoro è fermo allo 0%
Dipende anche dal limite di secondi a cui impostato il log: prova ad abbassarlo.
sko
Prode Principiante
Messaggi: 104
Iscrizione: domenica 27 novembre 2005, 2:07

Re: [Supporto] Ottimizzazione apache2

Messaggio da sko »

Una modifica che potresti provare ad effettuare è sicuramente nel ridurre i file richiesti al server.
ti faccio un esempio se un sito usa
prova.css
prova1.css

dovresti aggregare i due file in un unico provatotale.css sembra poco ma a volte puo' rallentare molto
la richiesta di troppo file per pagina ad apache...
Scrivi risposta

Ritorna a “Ubuntu su server”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti