2011-09-22 15 views
6

Ciao Sono un nuovo programmatore e ho lavorato alla mia prima vera applicazione che lancerò nelle prossime settimane. L'app utilizza alcune idee chiare sulla condivisione di foto, ma fondamentalmente è solo un'app per la condivisione di foto. Mi piacerebbe trovare informazioni su quale tipo di carico può gestire una piccola rotaia 3 ma non sono sicuro da dove iniziare. Devo eseguire test di benchmark per trovare quante richieste può gestire e quanto velocemente lo fa? Come si trovano statistiche come questa per la loro applicazione?Applicazione Rails 3, come misurare la stabilità sotto carichi elevati

In fin dei conti mi piacerebbe avere un'idea della quantità massima di traffico che il sito potrebbe gestire, o che un giorno potrebbe gestire, per ridurre i miei errori con quello con cui lavoro. Non vorrei mettere in moto una campagna di marketing virale se il sito non fosse in grado di gestire alcune centinaia di richieste simultanee. Non sto cercando di saltare la pistola e prepararmi per un sacco di traffico che non ho ancora, ma mi piacerebbe davvero avere un po 'di comprensione e un'idea di dove andare dopo in termini di usabilità e scalabilità del mio applicazione.

Grazie mille!

risposta

4

La più grande domanda qui è dove stai distribuire l'applicazione:

ho ospitare alcuni dei miei su un'istanza Linode, utilizzando nginx/unicorno. È sostanzialmente più lavoro ma mi piace. Non mi preoccupo di caricare molto i test, ma a volte colpisco duramente le home page con Siege (è possibile installarlo con homebrew, brew install siege) per avere un'idea di cosa sto lavorando.

Mentre mi occupo di distribuzione, penso che ricevere un hosting a pagamento da Heroku potrebbe sollevare alcune delle vostre preoccupazioni sulla stabilità, aggiornando le impostazioni dell'app per sopravvivere a carichi più grandi.

Puoi darci maggiori informazioni sulle tue scelte di hosting?

+0

Ciao, grazie per l'aiuto. Sto ospitando usando heroku ma non sono sicuro di quale tipo di installazione devo gestire un traffico moderato? –

1

"quale tipo di carichi di un'applicazione in grado di gestire xxxx"

Lei ha ragione. Per rispondere a questo, testiamo!

Senza prove, non possiamo semplicemente dire qualcosa di così ampio come la nostra applicazione di rubini, in esecuzione su 2 dyno da heroku, in grado di gestire 100 richieste/sec, o 100 utenti simultanei. Dobbiamo testare. Il ridimensionamento può anche essere un affare complicato. Senza test, non sapremo quali componenti si adattano bene e quali no.

Per iniziare, abbiamo la nostra applicazione, il sistema sotto test. Stiamo già lavorando su Heroku, che ci dà accesso immediato al componente aggiuntivo New Relic. Potremmo provare ad attivare la versione gratuita di New Relic per vedere quali informazioni ci fornisce. C'è una versione a pagamento che potremmo provare anche durante le nostre "sessioni di ottimizzazione" se dobbiamo immergerci ulteriormente.

Quindi manca semplicemente il "driver", il processo che guiderà il carico sull'applicazione, utilizzando i flussi di processo più comuni (caricamento di immagini, navigazione di immagini, accesso, ecc.).

Per iniziare, abbiamo solo bisogno di 1-N dei nostri migliori amici disposti a comportarsi da utenti sul nostro sito mentre monitoriamo tutte le attività di New Relic. Misurare i tempi di risposta per le esperienze degli utenti, identificare le query lente in esecuzione, vedere dove la nostra applicazione sta spendendo il suo tempo.

Quando ci stanchiamo di acquistare i nostri amici tutta la birra per aiutarci, possiamo guardare ad automatizzare alcuni di questi flussi aziendali comuni utilizzando uno strumento di test di carico.Ci sono quelli commerciali: Mercury LoadRunner, Borland SilkPerformer e Microsoft Team Test.

Potremmo anche essere creativi usando strumenti di test funzionali come Watir o selenio, o anche wget fidato, o curl, per guidare il carico.

Possiamo usare i nostri laptop, o Amazon EC2, come agenti di caricamento, che genererebbero traffico utente sul sito eseguendo i nostri script.

Non deve essere duro come tutto questo, anche se le prove generalmente si trasformano in un pantano se non facciamo attenzione a verificare i flussi giusti e forse altrettanto importanti, misurando la nostra applicazione. Senza misure, non sapremo se le modifiche al codice o alla configurazione, hanno reso le cose migliori o peggiori.

disclaimer: Non ho mai avuto un'applicazione di Rails di produzione, ma se l'avessi fatto, userei New Relic per monitorarlo. Almeno per iniziare, soprattutto visto che siamo già su Heroku.

1

non l'ho ancora provato, ma ho sentito parlare:

http://blitz.io/

guarda bene ed è sostenuto da Heroku tramite add-on