2013-03-14 10 views
5

Mamy aplikacji zainstalowanych w systemie Windows Azure jako rola WWW i używamy Pingdom na stronie testowej czas ładowania: http://tools.pingdom.com/fpt/ASP.NET kwestia wydajności aplikacji na Windows Azure

URL dla aplikacji na Windows Azure jest: http://www.doctorspring.com. Czas ładowania aplikacji wynosi zwykle około 7 sekund. Baza danych to baza danych SQL Azure, a rola i baza danych znajdują się w tej samej strefie.

Przykładowy wynik Pingdom: http://tools.pingdom.com/fpt/#!/CllGggrMz/http://www.doctorspring.com/

wynik Pingdom Sample (gzip): http://tools.pingdom.com/fpt/#!/f2TUbR6OX/www.doctorspring.com

Podejrzewając, że Azure może być problem, staraliśmy darmowy hosting z Somee jak: http://www.doctorspring.somee.com czasu ładowania aplikacja na Somee ma około 3.5s.

Próbka Pingdom wynik: http://tools.pingdom.com/fpt/#!/o3gZOjTwH/http://www.doctorspring.somee.com/

To jest ogromny problem wydajność dla nas. Czy możesz pomóc nam zrozumieć problem z Azure lub zaproponować metodę, w jaki sposób możemy go pokonać?

Dzięki Manish

+0

Używałbym profilera ... na przykład używamy tego: https://code.google.com/p/mvc-mini-profiler/ ... zauważyliśmy też, że Azure sprawił, że strony ładowały się miliardy razy wolniej , ale gdy mocno profilujemy rzeczy, poświęcamy czas na wydajność, tak naprawdę nie zauważamy różnicy między naszym starym hostingiem a hostingiem Azure. – Arran

+0

Ostatnio zauważyłem ten sam problem z wydajnością w trybie udostępnionym. Po prostu przełączyłem się na instancję Reserved, aby sprawdzić, czy jest lepiej. –

Odpowiedz

1

W obu przypadkach ładowania główną jest zbyt powolny - 3,5 sekundy do wygenerowania strony jest około 10 razy wolniej niż trzeba być, gdy nie ma obciążenia na miejscu. Spodziewałbym się, że strona z taką wydajnością rozpadnie się nawet przy umiarkowanym obciążeniu.

Nie wiedząc, jak strona jest zbudowana, ciężko jest wyjaśnić przyczynę, dla której jedno środowisko jest szybsze od drugiego - ale domyślam się, że przyczyną jest to, co generuje stronę (jakiś rodzaj CMS?). Azure jest znany z powolnego dotyku podczas wykonywania zapytań do bazy danych - choć zwykle objawia się to tylko w ekstremalnych warunkach.

Polecam dostrojenie CMS - szczególnie przy buforowaniu. Okazało się, że Azure jest zwykle dość szybkie, ale podczas wykonywania wyszukiwań bazy danych (np. Pobieranie treści dla CMS), może być zmienne; jeśli Twój CMS wykonuje wiele zapytań do bazy danych, aby uzyskać zawartość strony głównej, będzie wolno.

Warto również uruchomić Yslow - jest trochę nisko wiszących owoców na zwiększenie wydajności.

+0

Dzięki Neville, wybrałbym profiler w porządku, ale jeśli teraz spojrzysz na oba adresy URL, prośba ASPX jest szybsza dla drugiego adresu URL niż pierwszego. I wszystko, co możemy uzyskać z Yslow, jest. Chodzi o porównanie między tymi dwoma. – manishKungwani

1

Jakie usługi są uruchomione na platformie Azure? Rola internetowa, VM, strona internetowa? Czy łączysz się z instancją Azure Database ze strony głównej (jeśli tak, to ile różnych połączeń tworzysz) ?. Dostaję około 7,5 sekundy czasu ładowania z Londynu, ale szczerze mówiąc nawet 3 sekundy są zbyt wolne dla strony głównej. Trudno powiedzieć, co powoduje przedłużające się ładowanie stron, ale jeśli łączysz się z instancją DB, możesz zrobić np. Wiele rzeczy.

  1. Renderowanie strony i wykonywanie asynchronicznych wywołań w celu buforowania dodatkowych danych.

  2. Upewnij się, że Azure usługi są uruchomione blisko siebie

  3. Rozważmy zawartości bazy danych do buforowania blob. Na przykład. dla danych w "Odpowiedzi na pytania medyczne w ciągu ostatnich 24 godzin", jeśli wyciągasz je z bazy danych przy każdym obciążeniu, możesz znacznie przyspieszyć dostęp, rutynowo buforując to do pliku html przechowywanego w kontenerze typu blob i wstrzykując go na stronę.

  4. Jeśli musisz wykonywać połączenia DB ze strony głównej, spróbuj wykonać możliwie jak najwięcej rund, poprzez grupowanie zapytań w procedurę składowaną.

Przedstawiłem tutaj wiele założeń, ale są oczywiście rzeczy, które można zrobić, aby drastycznie poprawić wydajność na tej stronie.

+2

Zgadzam się na te punkty i są one na liście rzeczy do zrobienia. Jednak różnica wydajności na dwóch platformach jest tutaj prawdziwym pytaniem. – manishKungwani

+0

Po przejściu na Somee.com. Czy baza danych nadal znajduje się na platformie Azure? – QFDev

+0

Nie, mam bazę danych na somee.com. – manishKungwani

Powiązane problemy