2012-05-11 13 views
17

Chcę hostować statyczną stronę internetową na Heroku, ale nie jestem pewien, na ile dynow zaczynam.Ile dynos będzie wymagało hostowania statycznej witryny na Heroku?

Na tej stronie jest napisane: https://devcenter.heroku.com/articles/dyno-requests, że liczba żądań, które może obsługiwać dyno, zależy od używanego języka i frameworka. Ale przeczytałem też gdzieś, że 1 dyno obsługuje tylko jedną prośbę naraz.

Trochę zagmatwany tutaj, czy 1 sieć powinna wystarczyć do hostowania statycznej strony o bardzo małym natężeniu ruchu (< 1000 wyświetleń/miesiąc, < 10/godz.)? Jak oceniasz dodatkowe korzystanie z dynków, gdy ruch zacznie się zwiększać?

Mam nadzieję, że poprawnie sformułowałem moje pytanie. Naprawdę doceniam twój wkład, z góry dzięki!

+4

Dlaczego miałbyś hostować statyczną stronę z Heroku? Wygląda na to, że zyskasz więcej za swoje pieniądze z Amazon S3 lub współdzielonym hostem czy coś takiego. –

+0

@ brendan-long, możesz wyjaśnić, jak/dlaczego? Lub link do jakiegoś źródła, gdzie mogę dowiedzieć się więcej? – Gbert90

+0

Heroku jest przeznaczony dla dynamicznych stron internetowych i odpowiednio wyceniony. Każda dyno wynosi ~ 35 USD/miesiąc i jest zasadniczo jednym wątkiem robiącym co chcesz.Za tę samą cenę Amazon S3 przesyła za ciebie 300 GB plików (najprawdopodobniej cena pamięci jest dla ciebie znikoma), a zrobi to tak szybko, jak chcesz (nie ograniczając się do jednego wątku). Zasadniczo będzie skalować znacznie lepiej, a także będzie tańszy. –

Odpowiedz

48

Trochę zirytowany, odkąd usunęłam całkowicie poprawną odpowiedź, ale oto kolejna próba.

Jednoczęściowe hamaki Heroku są w stanie obsłużyć pojedyncze żądanie na raz. Gdybyś miał dynamiczną stronę (php, ruby ​​itp.), To byś spojrzał na to, ile czasu zajmuje strona, aby zareagować na serwerze, powiedzmy, że odpowiedź zajęła 250 ms, a jeden dyno mógłby obsłużyć 4 żądania na sekundę. Dodanie większej liczby dynos zwiększa wydajność współbieżności NOT. Jeśli więc masz 2 dynosy, w tym scenariuszu będziesz w stanie poradzić sobie z 8 żądaniami na sekundę.

Ponieważ mówisz tylko o statycznych stronach, ich czas reakcji powinien być znacznie krótszy. Najlepszym sposobem na sprawdzenie, czy potrzebujesz więcej, jest sprawdzenie danych wyjściowych logu heroku i sprawdzenie, czy poziom wartości "kolejki" jest utrzymywany; oznacza to, że dynos nie są w stanie nadążyć, a żądania są w kolejce do przetwarzania.

+0

Dzięki za próbę nr 2! To była dobrze napisana odpowiedź! – Gbert90

+0

Dziękuję za tak wspaniałą, dobrze napisaną odpowiedź! Masz dar wyjaśnienia skomplikowanych rzeczy w prosty sposób do zrozumienia! –

+0

Bardzo dobrze wyjaśniono, spędziłem dużo czasu próbując zrozumieć, jak działają dynos. Thx – levi

3

Odkąd większość HTTP 1.1 clients will create two TCP connections do serwera WWW podczas żądania zasobów, mam przeczucie, że zobaczysz lepszą wydajność na pojedynczych klientach, jeśli uruchomisz dwa dynos, więc żądania potokowe zasobów klienta mogą być obsługiwane również potokowo.

Musisz zdecydować, czy warto dodatkowych pieniędzy na (potencjalnie niewielkie) poprawy wydajności jednego klienta.

Jeśli kiedykolwiek spodziewałeś się, że wielu klientów zażąda informacji od razu, prawdopodobnie będziesz potrzebować więcej niż dwóch dynosów, aby upewnić się, że co najmniej jeden jest łatwo dostępny dla dodatkowych klientów.

3

W tej sytuacji, jeśli pozostaniesz przy jednym hamowaniu. Pierwszy jest darmowy, drugi stawia cię ponad miesięczne minimum i zaczyna wywierać koszty.

Ale, powinieneś również zdać sobie sprawę z jednej dyno na Heroku, aplikacja pójdzie spać, jeśli nie był dostępny ostatnio (myślę, że to około 30 minut). W takim przypadku ponowne uruchomienie może zająć 5-10 sekund i może dać użytkownikom bardzo powolne początkowe wrażenia.

Istnieją usługi internetowe, które będą testować twoją witrynę, testując jej odpowiedź i nie pozwalając jej zasnąć. http://www.wekkars.com/ na przykład.

+0

Jest to istotnie problem z pojedynczymi dynami. Udało mi się go rozwiązać za pomocą nowego dodatku (https://addons.heroku.com/newrelic) w heroku, który (w wersji darmowej) daje możliwość testowania, a także statystyki użytkowania, aby sprawdzić, czy twoja kolejka za wysoko i potrzebujesz więcej dynama. – syonip

+0

Używam teraz runscope do tego. Używam go do pingowania i testowania wyników z zewnętrznego serwera. Działa świetnie, aby utrzymać aplikację przy życiu. – Swards

Powiązane problemy