Stworzyłem dwie bardzo proste aplikacje Heroku, aby przetestować usługę, ale ładowanie strony przy pierwszej wizycie zajmuje często kilka sekund:
- Cropify - Podstawowa aplikacja Sinatra ( na github )
- Textile2HTML - jeszcze bardziej podstawowa aplikacja Sinatra ( na github )
Wszystko, co zrobiłem, to stworzyć prostą aplikację Sinatra i ją wdrożyć. Nie zrobiłem nic, żeby zepsuć lub przetestować serwery Heroku. Co mogę zrobić, aby skrócić czas odpowiedzi? W tej chwili jest bardzo wolno i nie wiem, od czego zacząć. Jeśli to pomaga, kod projektów jest na githubie.
ruby
performance
heroku
Lance Pollard
źródło
źródło
Możesz również sprawdzić opcje buforowania, które masz w Heroku w / Varnish i Memcached. Są one utrzymywane niezależnie od hamowni.
Na przykład, jeśli masz niezmienną stronę główną, możesz ją buforować przez dłuższy czas w Varnish, dodając nagłówki Cache-Control do odpowiedzi. Wówczas Twoi użytkownicy nie odczują obciążenia, dopóki nie będą chcieli „zrobić czegoś”, a nie gdy przyjdą.
źródło
Powinieneś sprawdzić odpowiedź Toma Robinsona na „Skalowalność: Jak działa Heroku?” na Quora: http://www.quora.com/Scalability/How-does-Heroku-work
Heroku dzieli zasoby serwera na wielu różnych klientów / aplikacje. Twoja aplikacja ma przydzielone bloki mocy obliczeniowej. Partycje Heroku oparte na zapotrzebowaniu na zasoby. Jeśli masz popularną aplikację, która wymaga większej mocy, możesz zapłacić za więcej „hamowni” (kontenerów aplikacji), a następnie otrzymać w zamian większy kawałek ciasta.
Jednak w twoim przypadku korzystasz z bezpłatnej aplikacji, którą odwiedza / używa niewiele osób - jeśli są poza tobą. W związku z tym Heroku ogranicza zasoby, które otrzymujesz, zwalniając aplikację - zasadniczo wprowadzając ją w stan hibernacji - do momentu wysłania żądania na Twój adres. Kiedy tak się dzieje, a Twoja aplikacja działa przez długi czas, ponowne załadowanie zajmuje trochę czasu.
Dodaj 1 dodatkową hamownię, aby aplikacja nie zasypiała, jeśli czas przeładowania jest ważny.
źródło
Mam ten sam problem. Wczoraj wieczorem wdrożyłem aplikację Rails 3 (1.9.2) i działa ona wolno. Wiem, że 1.9.2 / Rails 3 jest w wersji BETA na Heroku, ale zgłoszenie do pomocy technicznej mówiło, że powinno być w porządku, korzystając z instrukcji, które mi przesłali.
Rozumiem, że pierwsze żądanie po długim czasie trwa najdłużej. Ma sens. Ale samo ładowanie stron, które nawet nie łączą się z bazą danych, zajmuje 10 sekund, czasami jest dość złe.
W każdym razie możesz spróbować tego, co zamierzam zrobić. To jest profil mojej aplikacji i zobacz, jak długo to potrwa lokalnie. Jeśli trwa 400 ms, coś jest nie tak. Ale jeśli lokalnie otrzymam 50 ms, a na Heroku nadal trwa to 10 sekund, to coś jest zdecydowanie nie tak.
Oczywiście buforowanie pomaga, ale dostajesz tylko 5 MB za darmo i po raz kolejny, gdy JEDNA osoba korzysta z witryny, nie powinno to być takie wolne.
źródło