Newsgroup: it.comp.os.linux.sys
Titolo: Idee per ottimizzare due server.

Ciao a tutti, evidentemente non sono un sistemista. mi tocca farlo nel
progetto che sto seguendo poiché io sono l'unico programmatore.
dopo questa lacrimevole premessa cerco di essere brevissimo e vi espongo il
mio problema.
Abbiamo un sito che comincia a fare parecchio traffico e per questo motivo
abbiamo comprato un altro server (debian amd64 per 8 giga di ram per due
quad core. mentre quello "vecchio" è Slackware, 3 giga di ram, 2 dual core)
il primo server è online da un anno e comincia a non farcela più poiché da
solo deve gestire:
server web
server mysql
servizi in background che funzionano come degli spider e alimentano
continuamente il db
ora la situazione attuale è circa un milione di piccole immagini da servire
e un database piuttosto ben ottimizzato che riesce bene o male a funzionare
sul primo server (grazie anche all'ottimizzazione del php attarverso acp).
ma il traffico sta crescendo (dovremmo raggiungere i 500/600 utenti
contemporanei ora siamo sui 3/400) e io sono qui a chiedervi due dritte.
questa è la mia idea, ditemi se ha senso quel che dico.
Macchina #1 gestisce apache su tutto quello che è statico ossia file
css/html e quel milione e più di immagini con lighttpd
Macchina #2 gestisce tutti i dati dinamici, quindi mysql e elaborazione
pagine php con apache2 compilato per più di 256 utenti
gli spider gravano più sul database che sul calcolo puro, quindi proverei a
metterli sulla macchina #2
 
ha senso questa configurazione?
c'è un modo intelligente per far dirottare le chiamate statiche da quelle
dinamiche o conviene ad esempio usare: 
http://macchina1.dominio.com/immagini/immagine1.jpg
 per la prima e 
http://dominio.com/index.php
o esiste qualcosa di più raffinato?
va bene quello che sto per fare?
grazie per eventuali consigli. accetto tutto.
-- 
Sat_

 o esiste qualcosa di più raffinato?
Hai molti vantaggi con questo sistema, tra cui il fatto che i browser 
parallelizzano meglio le richieste (richiedono le immagini da una parte 
e le pagine php dall'altra).
Potresti mettere sul server 1 anche altre parti non variabili, come i 
css e i javascript, magari su un dominio diverso (
js.dominio.com
, 
css.dominio.com
, 
img.dominio.com
) in modo da parallelizzare ancora di 
piu`. Servendo pagine statiche il server2 e` comunque piu` veloce del 
server1, quindi puo` mandare 5-6 file mentre l'altro ne manda uno.
Inoltre hai il vantaggio che se vorrai separare ulteriormente i 
servizi sarai gia` pronto (puoi spostare 
js.dominio.com
 e 
css.dominio.com
 su un'altra macchina cambiando solo il DNS)
Bye.
Bye.

 
sì, l'idea è esattamente questa. tutto lo statico su #1 e il resto su #2
mi chiedo solo se sia necessario modificare i template per creare i vari
static.dominio.com
 o se esiste un metodo più veloce. ma che immagino
richieda calcolo in più.
cosa ne dici dici di lighttpd per il server #1?
grazie mille!
ciao
-- 
tra qualche anno vuoi sposarmi?
amore, io un'altra come te non la trovo più.
Ed è per questo che ringrazio Dio.
Abbiamo tutto il tempo per lasciarci.

 cosa ne dici dici di lighttpd per il server #1?
Non l'ho mai usato. Non saprei.
Bye.

 
Direi che la strada è aperta, ora mi documento su lightppd e vedo come
gestisce i file compressi. poi provo creare questo sistema in locale.
appena ho risultati li riporto, grazie e a presto.
Sat_
-- 

 
Guarda che bello:
-- 
tra qualche anno vuoi sposarmi?
amore, io un'altra come te non la trovo piů.
Ed č per questo che ringrazio Dio.


 
Guarda che bello:
http://trac.lighttpd.net/trac/wiki/Docs%3AModCompress
-- 
tra qualche anno vuoi sposarmi?
amore, io un'altra come te non la trovo piů.
Ed č per questo che ringrazio Dio.


 
Funziona ed è bello!
#abilita la compressione e indica il path per i file compressi
compress.cache-dir = "/localhost/static.domain.cache/"
#assegna tipi e header ai mime interessati
compress.filetype = ("text/plain", "text/html",
                     "text/css", "text/javascript"
                 )
risultato
root@sathio:/localhost/static.domain.cache/templates/site# ls -alh
total 20K
drwx------ 2 www www 4.0K 2007-08-11 16:02 .
drwx------ 3 www www 4.0K 2007-08-11 16:02 ..
-rw------- 1 www www 8.4K 2007-08-11 16:02
super.css-gzip-19202430-41369-1186795047
root@sathio:/localhost/static.domain/templates/site# ls -lah super.css
-rwxr-xr-x 1 sathia users 41K 2007-08-11 03:17 super.css
praticamente per i file statici lui crea il file gzip e lo tiene in cache.
poi lo serve con gli header giusti inseriti nell'array compress.filetype.
devo dire che lighttpd sembra veramente un ottimo prodotto.
ora non vedo l'ora di spedire su il nuovo server e vedere come funziona
tutto!
ciao
-- 
tra qualche anno vuoi sposarmi?
amore, io un'altra come te non la trovo più.
Ed è per questo che ringrazio Dio.


 
Con nginx è facile gestire la cosa, ma ti consiglio di gestire meglio la 
struttura delle directory.
Ad esempio mettere tutti i contenuti statici in una directory comune 
'static'
Saluti  Manlio Perillo

 
esattamente, ho creato una directory con tutti i file statici.
fortunatamente è tutto gestito con tpl di smarty quindi basta virare al
server giusto e siamo a posto.
inoltre il ~milione di immagini è in una struttura più o meno intelligente
del tipo
/images/a/b/a/abate.jpg
quindi il file seek dovrebbe essere abbastanza veloce.
saluti
-- 
Sat_


Saluti  Manlio Perillo

 sě, l'idea č esattamente questa. tutto lo statico su #1 e il resto su #2
Se #1 č il vecchio server e #2 quello nuovo, potrebbe essere bilanciato
meglio dedicando #1 interamente per la parte di frontend dinamico e
lasciando su #2 il database, gli script e tutti i contenuti statici.
IMHO metterei lighttpd o comunque un Web server semplice ma performante su
#2 per i contenuti statici, mentre punterei su apache su #1
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.