Optimieren der IIS-Leistung
Anwenden von IIS-Konfigurationsoptionen zur Verbesserung der IIS-Leistung
Internetinformationsdienste (IIS) macht zahlreiche Konfigurationsparameter verfügbar, die sich auf die IIS-Leistung auswirken. In diesem Thema werden einige dieser Parameter beschrieben und eine allgemeine Anleitung zum Festlegen der Parameterwerte zur Verbesserung der IIS-Leistung bereitgestellt.
Nur wichtige Informationen protokollieren oder die IIS-Protokollierung vollständig deaktivieren
Die IIS-Protokollierung sollte in einer Produktionsumgebung minimiert oder sogar deaktiviert werden. Führen Sie die folgenden Schritte aus, um die Protokollierung zu deaktivieren:
Klicken Sie auf Start, zeigen Sie auf Alle Programme, klicken Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager .
Klicken Sie im Bereich Verbindungen auf , um Websites zu erweitern, klicken Sie auf die Website, für die Sie die Protokollierung deaktivieren möchten, klicken Sie auf Featureansicht, und doppelklicken Sie dann auf die Protokollierungsfunktion .
Klicken Sie im Bereich Aktionen auf Deaktivieren, um die Protokollierung für diese Website zu deaktivieren.
Deaktivieren des IIS-ASP-Debuggings in Produktionsumgebungen
DAS IIS-ASP-Debuggen sollte in einer Produktionsumgebung deaktiviert sein. Führen Sie zum Deaktivieren des IIS-ASP-Debuggens die folgenden Schritte aus: Klicken Sie im Bereich Verbindungen auf Websites, klicken Sie auf die Website, für die Sie ASP-Debugging deaktivieren möchten, klicken Sie auf Featuresansicht, und doppelklicken Sie dann auf das ASP-Feature . Klicken Sie, um Kompilierung zu erweitern, klicken Sie auf Debugeigenschaften, und vergewissern Sie sich, dass sowohl Clientseitiges Debuggen aktivieren als auch Serverseitiges Debuggen aktivieren auf False festgelegt sind.
Klicken Sie auf Start, zeigen Sie auf Alle Programme, klicken Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager .
Klicken Sie im Bereich Verbindungen auf , um Websites zu erweitern, klicken Sie auf die Website, für die Sie das ASP-Debuggen deaktivieren möchten, klicken Sie auf Featureansicht, und doppelklicken Sie dann auf das ASP-Feature .
Klicken Sie, um Kompilierung zu erweitern, klicken Sie auf Debugeigenschaften, und vergewissern Sie sich, dass sowohl Clientseitiges Debuggen aktivieren als auch Serverseitiges Debuggen aktivieren auf False festgelegt sind.
Klicken Sie bei Bedarf im Bereich Aktionen auf Übernehmen.
Deaktivieren Sie das Debuggen für ASP.NET-Anwendungen und Webdienste, indem Sie den <Kompilierungsabschnitt debug="false"> in der web.config-Datei für die Webanwendung angeben.
Optimieren des Werts der EIGENSCHAFT "ASP-Threads pro Prozessorlimit"
Die Eigenschaft ASP-Threads pro Prozessorlimit gibt die maximale Anzahl von Workerthreads pro Prozessor an, die VON IIS erstellt werden. Erhöhen Sie den Wert für den Grenzwert für Threads pro Prozessor, bis die Prozessorauslastung mindestens 50 Prozent erreicht. Diese Einstellung kann die Skalierbarkeit Ihrer Webanwendungen und die Leistung Ihres Servers im Allgemeinen erheblich beeinflussen. Da diese Eigenschaft die maximale Anzahl von ASP-Anforderungen definiert, die gleichzeitig ausgeführt werden können, sollte diese Einstellung auf dem Standardwert verbleiben, es sei denn, Ihre ASP-Anwendungen führen erweiterte Aufrufe externer Komponenten durch. In diesem Fall können Sie den Wert des Grenzwerts für Threads pro Prozessor erhöhen. Dadurch kann der Server mehr Threads erstellen, um mehr gleichzeitige Anforderungen zu verarbeiten. Der Standardwert von Threads pro Prozessorlimit ist 25. Der maximal empfohlene Wert für diese Eigenschaft ist 100.
Um den Wert für den Grenzwert für Threads pro Prozessor zu erhöhen, führen Sie die folgenden Schritte aus:Wählen Sie im Bereich Verbindungen den Webserver aus, klicken Sie auf Die Featureansicht, und doppelklicken Sie dann auf das ASP-Feature .
Klicken Sie auf Start, zeigen Sie auf Alle Programme, klicken Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager .
Wählen Sie im Bereich Verbindungen den Webserver aus, klicken Sie auf Featureansicht, und doppelklicken Sie dann auf das ASP-Feature .
Klicken Sie auf , um Grenzwerte Eigenschaften unter Verhalten zu erweitern, klicken Sie auf Threads pro Prozessorlimit, geben Sie den gewünschten Wert für Threads pro Prozessorlimit ein, und klicken Sie im Bereich Aktionen auf Übernehmen.
Weitere Informationen zum Ändern der Eigenschaften im <limits-Element> des ASP> 7.5/7.0-Elements <von IIS finden Sie unter ASP-Grenzwerte <> (https://go.microsoft.com/fwlink/?LinkId=157483).
Hinweis
Da diese Eigenschaft nur auf Serverebene angewendet werden kann, wirkt sich die Änderung dieser Eigenschaft auf alle Websites aus, die auf dem Server ausgeführt werden.
Optimieren des Werts der ASP Queue Length-Eigenschaft
Das Ziel der Optimierung dieser Eigenschaft besteht darin, eine gute Antwortzeit sicherzustellen und gleichzeitig zu minimieren, wie oft der Server den HTTP-Fehler 503 (Server zu beschäftigt) an Clients sendet, wenn die ASP-Anforderungswarteschlange voll ist. Wenn der Wert der ASP-Warteschlangenlänge-Eigenschaft zu niedrig ist, sendet der Server den HTTP-Fehler 503 häufiger. Wenn der Wert der ASP-Warteschlangenlänge-Eigenschaft zu hoch ist, bemerken Benutzer möglicherweise, dass der Server nicht reagiert, wenn ihre Anforderung tatsächlich in der Warteschlange wartet. Wenn Sie die Warteschlange in Zeiten mit hohem Datenverkehr beobachten, sollten Sie ein Muster von Spitzen und Tälern von Webanfragen erkennen. Notieren Sie sich den Spitzenwert, und legen Sie den Wert der ASP Queue Length-Eigenschaft direkt über dem Spitzenwert fest. Verwenden Sie die Warteschlange, um kurzfristige Spitzen zu behandeln, die Antwortzeit sicherzustellen und das System zu drosseln, um eine Überlastung bei dauerhaften, unerwarteten Spitzen zu vermeiden. Wenn Sie keine Daten zum Anpassen der ASP-Warteschlangenlänge-Eigenschaft haben, besteht ein guter Ausgangspunkt in der Festlegung eines 1:1-Verhältnisses von Warteschlangen zu Gesamtthreads. Wenn z. B. die Asp Threads pro Prozessorgrenze auf 25 festgelegt ist und Sie über vier Prozessoren (4 * 25 = 100 Threads) verfügen, legen Sie die ASP Queue Length-Eigenschaft auf 100 fest, und optimieren Sie dort.
Führen Sie die folgenden Schritte aus, um den Wert für die Eigenschaft Warteschlangenlänge zu erhöhen:
Klicken Sie auf Start, zeigen Sie auf Alle Programme, klicken Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager .
Wählen Sie im Bereich Verbindungen den Webserver aus, klicken Sie auf die Option Featureansicht, und doppelklicken Sie dann auf das ASP-Feature .
Klicken Sie, um unter Verhaltendie Option Grenzwerte eigenschaften zu erweitern, klicken Sie auf Warteschlangenlänge, geben Sie den gewünschten Wert für Warteschlangenlänge ein, und klicken Sie dann im Bereich Aktionen auf Übernehmen.
Weitere Informationen zum Ändern der Eigenschaften im <limits-Element> des ASP> 7.5/7.0-Elements <von IIS finden Sie unter ASP-Grenzwerte <> (https://go.microsoft.com/fwlink/?LinkId=157483).
Hinweis
Da diese Eigenschaft nur auf Serverebene angewendet werden kann, wirkt sich die Änderung dieser Eigenschaft auf alle Websites aus, die auf dem Server ausgeführt werden.
Optimieren des Registrierungseintrags MaxPoolThreads
Diese Einstellung gibt die Anzahl der Poolthreads an, die pro Prozessor erstellt werden sollen. Poolthreads watch das Netzwerk für Anforderungen und verarbeiten eingehende Anforderungen. Die MaxPoolThreads-Anzahl enthält keine Threads, die von ISAPI-Anwendungen verwendet werden. Im Allgemeinen sollten Sie nicht mehr als 20 Threads pro Prozessor erstellen. MaxPoolThreads ist ein REG_DWORD Registrierungseintrag unter HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\Parameters\ mit dem Standardwert 4.
Deaktivieren der Ablaufverfolgung für WCF-Dienste
Verwenden Sie das Konfigurations-Editor-Tool (SvcConfigEditor.exe), um die Ablaufverfolgung von WCF-Diensten in einer Produktionsumgebung zu deaktivieren. Weitere Informationen zum Konfigurations-Editor-Tool finden Sie unter Configuration Editor Tool (SvcConfigEditor.exe) (https://go.microsoft.com/fwlink/?LinkID=127070).
Konfigurieren ASP.NET 2.0 MaxConcurrentRequests für den integrierten IIS 7.5/7.0-Modus
Wenn ASP.NET 2.0 unter IIS 7.5/7.0 im integrierten Modus gehostet wird, wird die Verwendung von Threads anders behandelt als bei IIS 7.5/7.0 im klassischen Modus. Wenn ASP.NET 2.0 in IIS 7.5 im integrierten Modus gehostet wird, beschränkt ASP.NET 2.0 die Anzahl gleichzeitig ausgeführter Anforderungen anstelle der Anzahl von Threads, die gleichzeitig Anforderungen ausführen. In synchronen Szenarien wird dadurch indirekt die Anzahl von Threads eingeschränkt, da die Anzahl der Anforderungen mit der Anzahl der Threads identisch ist. Bei asynchronen Szenarien ist die Anzahl der Anforderungen und Threads jedoch wahrscheinlich sehr unterschiedlich, da Sie weit mehr Anforderungen als Threads haben können. Wenn Sie ASP.NET 2.0 in IIS 7.5 im integrierten Modus ausführen, werden die minFreeThreads und minLocalRequestFreeThreads des "httpRuntime"-Elements im machine.config ignoriert. Für den integrierten IIS 7.5-Modus bestimmt ein DWORD mit dem Namen MaxConcurrentRequestsPerCPU innerhalb HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0 die Anzahl gleichzeitiger Anforderungen pro CPU. Standardmäßig ist der Registrierungsschlüssel nicht vorhanden, und die Anzahl der Anforderungen pro CPU ist auf 12 beschränkt. .NET Framework 3.5 SP1 enthält ein Update der v2.0-Binärdateien, das das Konfigurieren von IIS-Anwendungspools über die aspnet.config-Datei unterstützt. Diese Konfiguration gilt nur für den integrierten Modus (diese Einstellungen werden im klassischen/ISAPI-Modus ignoriert). Der neue aspnet.config-Konfigurationsabschnitt mit den Standardwerten ist unten aufgeführt:
<system.web>
<applicationPool maxConcurrentRequestsPerCPU="12" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000"/>
</system.web>
Im integrierten IIS 7.5-Modus werden die Parameter maxWorkerThreads und maxIoThreads im Abschnitt "processModel" der machine.config-Datei nicht verwendet, um die Anzahl der ausgeführten Anforderungen per se zu steuern, aber sie werden weiterhin verwendet, um die Größe des CLR-Threadpools zu steuern, der von ASP.NET verwendet wird. Wenn der Abschnitt "processModel" des machine.config "autoConfig=true" aufweist (die Standardeinstellung), erhält der Anwendungspool bis zu 100 Arbeitsthreads (MaxWorkerThreads) pro logischer CPU. Ein gemeinsamer Standardserver mit zwei Dual-Core-CPUs hätte also 400 MaxWorkerThreads. Dies sollte für alle bis auf die anspruchsvollsten Anwendungen ausreichend sein.
Weitere Informationen zum Konfigurieren ASP.NET Threadnutzung in IIS 7.5 finden Sie im Blog von Thomas Marquardt zur ASP.NET Threadverwendung in IIS 7.0 (https://go.microsoft.com/fwlink/?LinkId=157518).
Konfigurieren ASP.NET 4 MaxConcurrentRequests für den integrierten IIS 7.5/7.0-Modus
Bei .NET Framework 4 ist die Standardeinstellung für maxConcurrentRequestsPerCPU 5000. Dies ist eine sehr große Zahl, sodass viele asynchrone Anforderungen gleichzeitig ausgeführt werden können. Weitere Informationen finden Sie unter <applicationPool-Element> (Webeinstellungen) (https://go.microsoft.com/fwlink/?LinkID=205339).
Im integrierten Modus von IIS 7.5/7.0 bestimmt ein DWORD mit dem Namen MaxConcurrentRequestsPerCPU innerhalb HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0 die Anzahl gleichzeitiger Anforderungen pro CPU. Standardmäßig ist der Registrierungsschlüssel nicht vorhanden, und die Anzahl der Anforderungen pro CPU ist auf 5000 beschränkt.
Aktivieren der IIS-HTTP-Komprimierung
Aktivieren Sie die IIS-HTTP-Komprimierung, um die verfügbare Bandbreite effizienter zu nutzen. Die HTTP-Komprimierung ermöglicht eine schnellere Übertragungszeit zwischen komprimierungsfähigen Browsern und IIS, unabhängig davon, ob Ihre Inhalte aus dem lokalen Speicher oder einer UNC-Ressource bereitgestellt werden.
So konfigurieren Sie die Komprimierung auf Webserverebene:
Klicken Sie auf Start, zeigen Sie auf Alle Programme, klicken Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager .
Wählen Sie im Bereich Verbindungen den Webserver aus, klicken Sie auf die Option Featureansicht, und doppelklicken Sie dann auf das Komprimierungsfeature .
Legen Sie die gewünschten Komprimierungsoptionen fest, und klicken Sie dann im Bereich Aktionen auf Übernehmen.
So konfigurieren Sie die Komprimierung auf Websiteebene:
Klicken Sie auf Start, zeigen Sie auf Alle Programme, klicken Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager .
Klicken Sie im Bereich Verbindungen auf , um Websites zu erweitern, klicken Sie auf die Website, für die Sie die Komprimierung konfigurieren möchten, klicken Sie auf Featureansicht, und doppelklicken Sie dann auf das Komprimierungsfeature .
Legen Sie die gewünschten Komprimierungsoptionen fest, und klicken Sie dann im Bereich Aktionen auf Übernehmen.