2013-11-14 18 views
65

W IIS są dwie powierzchnie (a, więcej niż dwa) w recyklingu mogą występować:IIS: limitu czasu bezczynności vs Recykling

  1. w sekcji „Model procesu” → „Idle paska” (standard 20 minut)

i

  1. w sekcji "pętli" → "Zwykły Przedział czasu" (standardowe 1740 minut)

Moje pytania są następujące:

  1. Jakie są różnice między tymi dwoma metodami?
  2. Jakie są negatywne implikacje ustawień dla 0?

Odpowiedz

67

Idle Timeout jest, jeśli żadna czynność została wezwana z aplikacji internetowych, to proces będzie spadać i zwolnić wszystko z pamięci

Recycle jest wymuszone działanie w sprawie stosowania, gdzie przetwarzane są zamknięte i rozpoczęto ponownie , dla celów wycieku pamięci i kondycji systemu

Negatywny wpływ obu jest zwykle wykorzystywany podczas sesji, a stan aplikacji jest tracony, jeśli nie uda Ci się zrzucić do ponownego użycia w krótszym czasie.(zalogowani użytkownicy itp. zostaną wylogowani, jeśli będą chcieli "wyewidencjonować" wszystkie zostałyby utracone "dlatego właśnie recykling ma tak dużą wartość limitu czasu, bezczynny limit czasu nie ma znaczenia, ponieważ nikt nie jest zalogowany 20 minut bezczynność nie są jeszcze "zakupy"

Pozytywne byłoby pozbycie się czasu bezczynności, ponieważ witryna zareaguje szybciej na "pierwszą" odpowiedź, jeśli nie jest wysoce aktywną stroną, na której użytkownik musielibyśmy poczekać, aż załaduje się, jeśli masz jednego użytkownika co 20 minut, powiedzmy, więc strona internetowa, która dostanie jego mniej niż 1 raz w ciągu 20 minut, w rzeczywistości chcesz zwiększyć tę wartość, ponieważ strona musi się ponownie załadować od zera dla każdego użytkownika, ale jeśli ustawisz tę wartość na 0 przez długi czas, wszelkie wycieki pamięci w kodzie mogą przez pewien czas całkowicie przejąć serwer.

+0

Dzięki! To ma sens. Moim głównym dylematem jest to, że "pierwszy ładunek" zajmuje bardzo dużo czasu. Pomyślałem, że jeśli ustawię obie te wartości na 0, to mogę to obejść. Jednak problem wycieku pamięci jest problemem. Czy istnieje sposób na "recykling", a następnie "wymuszenie" żądania tak, aby "pierwszy dostęp" został zakończony i wykonany natychmiast po zakończeniu recyklingu? A może zaplanować recykling o 2 w nocy, a następnie zaplanować "pierwszy dostęp" o 2:30 rano? Czy istnieje sposób w IIS, aby to zrobić? – Ricky

+0

@Ricky Miałem również problem z pierwszym trafieniem. Musisz ustawić tryb początkowy puli aplikacji na AlwaysRunning: http://msdn.microsoft.com/en-us/library/ee677285%28v=azure.10%29.aspx –

+0

Przydało mi się to również: https://www.simple-talk.com/blogs/2013/03/05/speeding-up-your-application-with-the-iis-auto-start-feature/ –

23

Od here:

Jednym ze sposobów oszczędzania zasobów systemowych jest skonfigurowanie bezczynności limitu czasu ustawienia dla procesów roboczych w puli aplikacji. Po skonfigurowaniu tych ustawień , proces roboczy zostanie zamknięty po określonym czasie bezczynności w postaci . Domyślną wartością limitu czasu bezczynności jest 20 minut.

Sprawdź również Why is the IIS default app pool recycle set to 1740 minutes?

Jeśli masz tylko kilka miejsc na serwerze i chcesz je zawsze szybko załadować następnie ustawić na zero. W przeciwnym razie, gdy masz 20 minut bez ruchu, pula aplikacji zakończy się, dzięki czemu może zostać ponownie uruchomiona podczas następnej wizyty. Problem polega na tym, że pierwsza wizyta w puli aplikacji musi utworzyć nowy proces roboczy w3wp.exe , który jest powolny, ponieważ trzeba utworzyć pulę aplikacji, ASP.NET lub inne ramy muszą zostać załadowane, a następnie potrzeby aplikacji do załadowania. To może potrwać kilka sekund. Dlatego ustalam, że przy każdej nadarzającej się okazji, chyba że jest to serwer obsługujący wiele witryn , które nie zawsze muszą być uruchomione.

0

Odziedziczyłem aplikację komputerową, która wykonuje połączenia z serią usług internetowych w IIS. Usługi sieciowe (także) muszą być w stanie uruchamiać procesy czasowe, niezależnie (bez włączania klienta). Dlatego wszystkie mają zegary. Liczniki czasu usługi sieci Web były wyłączone (wyciek pamięci?), Więc ustawiliśmy limit czasu bezczynności na 0, a liczniki czasu pozostały włączone.

0

IIS ma teraz

Idle Time-out Action : Suspend ustawienie

Zawieszenie jest po prostu zawiesza proces i jest o wiele bardziej wydajny niż proces niszczenia.