2013-03-31 16 views
22

Czasami, gdy uzyskuję dostęp do witryny Windows Azure, początkowy czas reakcji jest bardzo wolny. Po pierwszym załadowaniu strony strona jest szybka. Niektóre informacje: Witryna nie jest obecnie często odwiedzana. Ponadto używam kontrolera keepalive, aby strona działała, a strona działa w trybie udostępnionym. Zastanawiam się: czy strony internetowe, które nie są aktywne, zostały usunięte z pamięci w Windows Azure? A może po prostu przeszkadzają czasem zadania tła na poziomie operacyjnym Windows Azure? Nie jest dla mnie przejrzyste, co się dzieje, więc czy jest coś takiego dla witryn z niebieskimi oknami?czas ładowania witryny Windows Azure

Odpowiedz

2

Witryny sieci Web systemu Windows Azure wciąż znajdują się w podglądzie, więc obecnie nie ma umowy SLA z tą usługą.

Witryny internetowe są nieaktywne, gdy są w trybie darmowym lub udostępnionym, co prawdopodobnie jest widoczne. Kiedy witryna jest bezczynna, jest ona faktycznie usuwana z pamięci, a proces hosta IIS uruchamiający tę witrynę jest zamknięty. W ten sposób mogą uzyskać gęstość hostingu 100 witryn na tej samej maszynie wirtualnej.

Możesz znaleźć wiele informacji na stronie Channel9 o tym, dlaczego tak jest, lub, jako bezwstydna wtyczka, oto artykuł, który mówi o how the process is handled.

Wspomniał pan, że używasz kontrolera keepalive, ale co dokładnie przez to rozumiesz? Używam pingdom.com do ciągłego żądania danych dla jednej z moich stron internetowych i wydaje się, że to całkiem nieźle. Nadal możliwe jest, że żądanie nie przychodzi, a czas przestoju jest spełniony, co powoduje cykliczne uruchamianie witryny. Możliwe jest również, że nawet jeśli zawsze masz uruchomioną witrynę, że VM witryny witryny musi mieć zaktualizowany system operacyjny, w którym to przypadku Azure następnie przenieść proces witryny do innej maszyny wirtualnej, co może również powodować powolne uruchamianie na następny wniosek.

Zacznę rejestrować twoje uruchomienia aplikacji, a następnie przejrzę twoje dzienniki, aby zobaczyć, jak często to się dzieje.

+0

Mam zadanie uruchamiane w oddzielnym wątku i żąda tylko strony głównej za pomocą klasy WebClient. Często zdaje się, że rzeczywiście działa dobrze, więc myślę, że może to coś związanego z obsługą systemu operacyjnego. Uważam, że to niepokojące, że nie jest przejrzyste, co dzieje się na komputerze, na którym działa strona. Ale przypuszczam, że zawsze masz to ze wspólną maszyną. Sprawdzę rzeczywiście logi. Świetny artykuł, przy okazji! – staccata

+0

Nie wierzę, że działanie procesora witryny uważa się za kontynuację witryny, ale więcej na żądania tej witryny, dlatego coś takiego jak pingdom.com działa, ponieważ powoduje żądanie strony spoza samej witryny . Inni również robią rzeczy z programem Windows Azure Mobile Services Scheduler. – MikeWo

17

Jest teraz nowa funkcja dostępna dla witryn Windows Azure w trybie „zarezerwowana”, która będzie utrzymanie ciepłego internetowej. Możesz teraz włączyć "Always-on" pod tablicą "Konfiguracja" w witrynie Azure. Jak wyjaśniono w this blogu:

Kiedy nowa „Always On” funkcja jest włączona jest na miejscu, „Windows Azure automatycznie regularnie ping swoją stronę, aby upewnić się, że strona jest zawsze aktywny i w sposób ciepły/działający stan ", pisze Guthrie . „Jest to przydatne, aby zapewnić, że witryna jest zawsze czuły (i że domena aplikacja lub proces roboczy nie Paged z powodu brak żądań HTTP zewnętrznych).”

+0

Dlaczego to się kiedykolwiek zdarzyło? – epalm

+1

Wygląda na to, że działa tylko w trybie podstawowym lub standardowym, a nie współdzielonym (OP prowadzi swoją witrynę w trybie udostępnionym) (http://azure.microsoft.com/en-us/documentation/articles/web-sites-configure /) – romanoza

+9

To i tak nie działa dobrze. Zawsze mam to włączone na lazurowych stronach internetowych i nadal zwykle zajmie to około 30 sekund, aby uruchomić aplikację, jeśli nikt ostatnio nie uzyskał dostępu. – eoleary

1

Jeśli tylko trzeba ją ogrzać jeden raz (w przeciwieństwie do utrzymywania ciepła) i starają się głównie uniemożliwić klientom rozpoczęcie zimnego startu, uważam, że właściwym narzędziem jest IIS Application Initialization. Możesz skonfigurować go z listą adresów URL do trafienia, zanim uzna, że ​​aplikacja jest gotowa do działania.

Moja strona cierpi na zimne uruchamianie strony i jest znacznie powiększona na stronach internetowych Azure (nawet na S3), ale jest absolutnie szybka po tym, jak została obsłużona po raz pierwszy dzięki kilku warstwom buforowania (nasze nieefektywne wykorzystanie Umbraco's język zapytań dynamicznych węzłów tworzy masę przerzucania bazy danych - którą my opróżniamy w sposób oportunistyczny).

Z tego, co przeczytałem i moich własnych prób web.config, to wciąż nie jest dostępne na stronach internetowych Azure. Poprosiłem o to Microsoft: MS IDEA: Application Initialization to warm up specific pages when app pool starts. Rozważ głosowanie nad tym.

1

Dla każdej usługi/witryny należy przejść do "Konfiguracji", a następnie ustawić "Zawsze wł." Na WŁ. Pamiętaj również, aby kliknąć Zapisz; Moja strona internetowa zajęła mi około 2 minuty, zanim zauważyłem zmianę.

Dlaczego ta opcja nie jest domyślna, jest niesamowita, ponieważ moja konfiguracja na HostGatorze działa znacznie szybciej niż Azure. Domyślam się, że Microsoft zastanawia się, czy nikt nie ma dostępu do twojej witryny, jest w porządku, jeśli ma długi czas ładowania.

Powiązane problemy