Dieser Artikel erschien zuerst auf Olivers Blog.
Die Internet-Informationsdienste (IIS) unter Windows Server 2008 (R2) sind sehr leistungsfähig und skalierbar. Der Aufbau des IIS ist modular, was bedeutet, die Funktionen die nicht gebraucht werden, müssen auch nicht installiert werden. Somit bleibt der IIS schlank und weniger angreifbar. Auch die Ressourcen die ein Webserver verwendet, sind überschaubar.
Wenn auf einem Webserver im Intranet viele Websites gehostet werden, bspw. Sharepoint, Webaccess für Remotedesktop usw., kommt schnell ein Sümmchen von genutztem Arbeitsspeicher zusammen. Warum?
Jeder wichtigen Webapplikation sollte man einen eigenen Anwendungspool zuweisen. Somit laufen die Websites voneinander getrennt, können z.B. gewartet werden, ohne dass eine andere Website davon betroffen ist. Nun ergibt es Sinn, den Anwendungspool nach einer gewissen Leerlaufzeit herunterzufahren wenn die Website nicht 24/7 erreichbar sein muss, um den Arbeitsspeicher freizugeben, den der Anwendungspool benutzt. Nachteil ist allerdings, wenn eine Anfrage an die Website gestellt wird und der Anwendungspool heruntergefahren ist, dass es eine Weile dauert bis die Website erreichbar ist, denn der Anwendungspool muss erst gestartet werden.
Wie sehe ich, wie viel Arbeitsspeicher gerade genutzt wird?
Wenn man den Taskmanager öffnet, findet man für jeden gestarteten Anwendungspool einen Prozess „w3wp.exe“. Hinter dem Benutzernamen steckt immer der Anwendungspoolname, solange der Anwendungspool in der Identität „ApplicationPoolIdentity“ läuft
(Hier ein Beispiel bei drei genutzten Anwendungspools)
Im IIS selber ist es auch ersichtlich, welche Anwendungspools gerade gestartet sind. In der IIS Konsole klickt man dazu auf den Hostnamen des Webservers und im Bereich „IIS“ findet man „Arbeitsprozesse“. Hier werden alle Anwendungspools aufgelistet, die momentan gestartet sind. Selbst die aktuellen Anforderungen kann man hier einsehen.
Wo stelle ich den Leerlauftimeout ein?
Dazu erweitert man den Punkt „Hostname des Webservers“ in der IIS Konsole, klickt auf „Anwendungspools“ und öffnet die „Erweiterten Eigenschaften“ des Anwendungspools. Unter „Prozessmodell“ findet man den Punkt „Leerlauftimeout”. Hier wird nun in Minuten die Leerlaufzeit eingestellt.
http://faq-o-matic.net/?p=3751