[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