Procesy robocze IIS zajmują dużo pamięci na naszych serwerach. Chcę ograniczyć pamięć, z której może korzystać każda aplikacja. Nie jestem pewien, czy powinienem ustawić limit pamięci wirtualnej, czy prywatny. Każda aplikacja w naszym IIS znajduje się we własnej puli aplikacji.
Jeśli ustawię limit pamięci prywatnej na 500 MB, a limit pamięci wirtualnej na 3 GB. Kiedy pula aplikacji jest przetwarzana? Czy recyklinguje po osiągnięciu 500 MB lub po osiągnięciu 3 GB.
iis
iis-7
iis-6
memory-leak
virtual-memory
Kishore
źródło
źródło
Advanced Settings -> Recycling
sekcji puli aplikacji .Odpowiedzi:
IIS przestrzega obu tych limitów.
Jeśli ustawisz limit prywatnych bajtów 500 MB, gdy tylko proces roboczy spróbuje zatwierdzić 501 MB, IIS rozpali nowy proces roboczy i zabije stary.
Jeśli ustawisz limit pamięci wirtualnej 3 GB, jak tylko proces roboczy spróbuje zarezerwować 3,001 GB, IIS rozpali nowy proces roboczy i zabije stary.
Jeśli korzystasz z platformy 64-bitowej, pamiętaj, że aplikacja ASP.NET agresywnie rezerwuje pamięć wirtualną. Jako przykład mam aplikację na farmie, która wykorzystuje tylko 88 MB prywatnych bajtów, ale teraz ma rozmiar wirtualny 5,4 GB. Uważam, że rezerwacja pamięci wirtualnej jest funkcją fizycznej pamięci RAM na serwerze. Ważne jest również, aby zrozumieć, że na platformie 64-bitowej rezerwowanie dużych części pamięci wirtualnej ma zerowy wpływ na wydajność.
Zasadniczo, jeśli masz problemy z zużyciem pamięci na serwerze IIS, ustawieniem, które chcesz ograniczyć, jest pamięć prywatna / bajty, co odpowiada faktycznemu zużyciu pamięci.
źródło