[ruby-it] Altra domanda strana

Paolo Montrasio paolo a paolomontrasio.com
Gio 10 Set 2009 09:36:05 CEST


Alessandro Scolavino wrote:
> Bhe è un sistema multisito, sono previste tra le 5k e le 10k visite al 
> giorno

Stimare il carico massimo di un sistema è un esercizio interessante per 
cui ci provo.

Ci sono 86400 secondi in un giorno. Supponendo che le visite siano 
concentrate in 8 ore scendiamo a 28800. Supponiamo che le visite siano 
davvero lunghe e durino 1 ora di click intensi (è un gestionale, ma 
secondo me sto esagerando e tanto), diciamo una richiesta ogni 10 
secondi dato che dovranno pur leggere quel che cliccano :-) fanno 360 
richieste per visita ossia 3.600.000 richieste in 8 ore. Sono in media 
125 richieste al secondo con picchi e valli.

Se la variabilità attorno alla media fosse simile a quella del traffico 
internet in Italia, che stimo con i dati del MIX 
(http://www.mix-it.net/brontolo/cgi-bin/14all-Totale_globale.cgi?log=totaltraffic_global) 
i picchi non dovrebbero arrivare al doppio del valor medio, ma diciamo 
sempre per cautela che avrai dei picchi in cui il traffico si triplica a 
375 richieste al secondo, anzi, facciamo cifra tonda a 400.

Sono tante, sono poche? Difficile dirlo senza conoscere a fondo la tua 
applicazione ed il tuo server (quanto ci metti a servirne una?). E' però 
credo una stima esagerata per eccesso e finché non si va in produzione è 
difficile dire quale sarà veramente il traffico, dove andrà per davvero 
nell'applicazione e dove si dovrà ottimizzare. Considera che se davvero 
avessi esagerato dovremmo togliere un ordine di grandezza e scendere a 
picchi di 40 richieste al secondo, che non penso ci siano problemi a 
servire con un parallelismo decente del tipo che descrivevi nei tuoi 
post delle settimane passate.

Fatta questa considerazione, c'è un ultimo passo.

Ognuna di queste richieste se mira ad avere una nuova pagina si porterà 
dietro svariate GET HTTP di cui almeno una a Rails e le altre al web 
server. Con l'appropriato caching il browser non le farà neppure. Se è 
una richiesta Ajax, ci sarà una sola GET a Rails. Se come mi pare di 
capire hai dei contenuti statici che si autorigenerano sul server (*), 
imposta su di loro una Etag appropriata ed una expiration della cache 
ragionevole a livello di web server, così che il browser non farà mai 
nuove richieste se non quando ci saranno i nuovi dati.

(*) Ma questi file (il tuo .png) vengono generato da un controller 
durante una richiesta del client o vengono creati da un processo in 
background sul server?

Paolo
-- 
Posted via http://www.ruby-forum.com/.


More information about the Ml mailing list