2012-05-11 15 views
17

Desidero ospitare un sito Web statico su Heroku, ma non sono sicuro di quanti dynos iniziare.Quanti dynos richiederebbero di ospitare un sito web statico su Heroku?

Si dice in questa pagina: https://devcenter.heroku.com/articles/dyno-requests che il numero di richieste che un banco può servire dipende dalla lingua e dal framework utilizzato. Ma ho anche letto da qualche parte che 1 banco prova solo una richiesta alla volta.

Un po 'confuso qui, dovrebbe bastare 1 web dyno per ospitare un sito Web statico con traffico molto ridotto (< 1000 visualizzazioni/mese, < 10/ora)? E come andresti a stimare l'uso aggiuntivo di dinamiche mentre il traffico inizia ad aumentare?

Spero di aver formulato correttamente la mia domanda. Apprezzerei molto il tuo contributo, grazie in anticipo!

+4

Perché dovresti ospitare un sito statico con Heroku? Sembra che potresti ottenere più soldi per te con Amazon S3 o un host condiviso o qualcosa del genere. –

+0

@ brendan-long, puoi spiegare come/perché? O link a qualche fonte dove posso imparare di più? – Gbert90

+0

Heroku è progettato per siti Web dinamici e ha un prezzo corrispondente. Ogni dyno è ~ $ 35 al mese, ed è fondamentalmente un thread che fa quello che vuoi.Allo stesso prezzo, Amazon S3 trasferirà 300 GB di file per te (molto probabilmente il prezzo di archiviazione è trascurabile per te) e lo farà velocemente quanto vuoi (non limitato a un thread). Fondamentalmente si ridimensionerà molto meglio e sarà anche più economico. –

risposta

48

Un po 'delusa da quando ho avuto una risposta perfettamente valido cancellato ma qui è un altro tentativo.

heroku dynos sono singole filettato, in modo che siano in grado di affrontare una singola richiesta alla volta. Se avessi una pagina dinamica (php, ruby, ecc.), Vedresti quanto tempo impiegherà una pagina per rispondere al server, diciamo che ci sono voluti 250ms per rispondere, quindi un singolo dinamo potrebbe gestire 4 richieste al secondo. L'aggiunta di più dynos aumenta la concorrenza NON prestazioni. Quindi se hai 2 dynos, in questo scenario puoi gestire 8 richieste al secondo.

Dal momento che si sta parlando solo pagine statiche, il loro tempo di risposta dovrebbe essere molto più veloce di questo. Il tuo modo migliore per identificare se hai bisogno di più è guardare il tuo output di registro di heroku e vedere se hai livelli sostenuti del valore 'coda'; ciò significa che i dynos non sono in grado di tenere il passo e le richieste vengono accodate per l'elaborazione.

+0

Grazie per il tuo tentativo # 2! Questa è stata una risposta ben scritta! – Gbert90

+0

Grazie per una risposta così bella e ben scritta! Hai un regalo per spiegare le cose complicate in un modo semplice per capire! –

+0

molto ben spiegato, avevo passato molto tempo a cercare di capire come funzionano i dynos. Thx – levi

3

Dal momento che la maggior parte di HTTP 1.1 clients will create two TCP connections al server web quando si richiedono risorse, ho l'impressione che si vedranno prestazioni migliori sui singoli client se si avviano due dynos, quindi le richieste di risorse pipeline del client possono essere gestite anche come pipeline.

Dovrete decidere se vale la pena il denaro extra per la (potenzialmente lieve) miglioramento delle prestazioni di un singolo client.

Se si prevede di avere più client che richiedono informazioni in una sola volta, probabilmente vorranno più di due dynos, solo per assicurarsi che almeno uno sia prontamente disponibile per altri client.

3

In questa situazione, se si rimane con un banco di prova. Il primo è gratuito, il secondo ti mette al di sopra del minimo mensile e inizia a generare costi.

Ma, si dovrebbe anche rendersi conto con un banco di prova sul Heroku, l'applicazione andrà a dormire se non è stata letta da poco (credo che questo è di circa 30 minuti). In tal caso, potrebbero essere necessari 5-10 secondi per riattivare e offrire agli utenti un'esperienza iniziale molto lenta.

Non ci sono servizi web che sarà ping il tuo sito, il test per la sua risposta e mantenerlo sveglio. http://www.wekkars.com/ per esempio.

+0

Questo è davvero un problema importante con single dynos. Sono riuscito a risolverlo con l'addon new-relic (https://addons.heroku.com/newrelic) in heroku, che (nella versione gratuita) ti offre la capacità di ping e anche le statistiche di utilizzo per controllare se la tua coda sta diventando troppo alto e hai bisogno di più dynos. – syonip

+0

Ora utilizzo il runscope per questo. Lo sto usando per eseguire il ping e testare i risultati da un server esterno. Funziona alla grande per mantenere viva l'app. – Swards

Problemi correlati