Zabieram się do tego artykułu jak pies do jeża chyba więc prościej będzie wrzucać treść na raty…

Problem:
Zmieniam coś w konfiguracji lub podmieniam coś w aplikacji webowej. Wykonuję iisreset. Pierwsze użycie stronki trwa wieki. Nieważne czy jest to Sharepoint czy prosta witryna z gołą babą. Uruchamianie worker procesów, kompilowanie aplikacji, sprawdzenie certyfikatów a raczej CRLi … to wszystko zabiera nam cenne sekundy. Do tego Application poole mają swoje czasy uśpienia i recycling co powoduje, że przy braku użytkowników, strona znowu usypia… Przy rzadko odwiedzanych stronach generalnie mamy wrażenie że coś jest nie tak i za każdym razem musimy czekać nawet dwie minuty by zobaczyć efekt końcowy. Jak z tym walczyć? No jest kila trików, między innymi “warm up” skrypty w PS używane od lat przez Microsoft przy prezentacjach Sharepointów… Nie opisze tutaj wszystkich sztuczek a jedynie podam prosty sposób na  automatyczne wymuszenie uruchomienia application poola czyli uruchomienia worker procesu na IIS. Bez zaawansowanych skryptów i potrzeby wnikliwego analizowania swojej aplikacji.

Rozwiązanie:
Narzędzie stworzone do IIS 8 dostępne dla IIS 7.5 o nazwie Application Initialization
Użycie banalne, składające się z dwóch kroków.

  1. Instalacja Application Initialization
    1. Uruchom appwarmup_x64.msi
    2. Zrestartuj server
  1. Wybierz który application pool ma być zawsze uruchomiony
    1. Uruchom CMD jako Administrator
    1. Przejdź do lokalizacji c:\Windows\system32\inetsrv\
  1. Przykładowo dla DefaultAppPool uruchom
    appcmd.exe set apppool “DefaultAppPool” /startMode:AlwaysRunning

W ramach sprawdzenia możesz zrobić iisreset i zobaczyć że na liście Worker processów pojawi się DefaultAppPool pomimo braku wywołania strony.

Generalnie wypróbujcie to w domu, u mnie 120 sekund do przodu ;)

Spread the love

Comments (4)

  1. kojn

    Odpowiedz

    byś był kontent zrobiłem apdejt na tym poście. Bedę się puszował za każdym razem by uzywać spelczekera. Mam nadzieje ze nie bedziesz mial wiecej isiuszów spowodowanych moim spelingiem.

  2. Odpowiedz

    no już, już. bez foszenia proszę (;
    to po prostu polski wyraz więc warto o niego zawalczyć, żeby nie zaginął! (:

Zostaw komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Time limit is exhausted. Please reload CAPTCHA.