Freigeben über


Optimieren der IIS-Leistung

Anwenden von IIS-Konfigurationsoptionen zur Verbesserung der IIS-Leistung

Internetinformationsdienste (Internet Information Services, IIS) machen zahlreiche Konfigurationsparameter verfügbar, die sich auf die IIS-Leistung auswirken. In diesem Thema werden mehrere dieser Parameter beschrieben und allgemeine Anleitungen zum Festlegen der Parameterwerte zur Verbesserung der IIS-Leistung bereitgestellt.

Protokollieren sie nur wichtige Informationen, oder deaktivieren Sie die IIS-Protokollierung vollständig.

Die IIS-Protokollierung sollte in einer Produktionsumgebung minimiert oder sogar deaktiviert werden. Gehen Sie wie folgt vor, um die Protokollierung zu deaktivieren:

  1. Klicken Sie auf „Start“, zeigen Sie auf „Alle Programme“, klicken Sie auf „Verwaltungstools“ und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).

  2. Klicken Sie im Bereich "Verbindungen" auf Websites, um diese zu erweitern. Wählen Sie die Website aus, für die Sie die Protokollierung deaktivieren möchten, und klicken Sie dann auf Featureansicht. Doppelklicken Sie anschließend auf das Protokollierungs-Feature.

  3. Klicken Sie im Bereich "Aktionen" auf "Deaktivieren", um die Protokollierung für diese Website zu deaktivieren.

Deaktivieren des IIS-ASP-Debuggings in Produktionsumgebungen

Iis ASP-Debugging sollte in einer Produktionsumgebung deaktiviert werden. Führen Sie zum Deaktivieren des IIS ASP-Debuggings die folgenden Schritte aus: Klicken Sie im Bereich Verbindungen auf, um Websites zu erweitern, wählen Sie die Website aus, für die Sie das ASP-Debugging deaktivieren möchten, wählen Sie Featureansicht aus, und doppelklicken Sie dann auf das ASP-Feature. Klicken Sie, um die Kompilierung zu erweitern, klicken Sie, um Debugeigenschaften zu erweitern, und überprüfen Sie, ob sowohl clientseitiges Debuggen als auch serverseitiges Debuggen auf "False" festgelegt sind.

  1. Klicken Sie auf „Start“, zeigen Sie auf „Alle Programme“, klicken Sie auf „Verwaltungstools“ und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).

  2. Klicken Sie im Bereich "Verbindungen ", um Websites zu erweitern, klicken Sie, um die Website auszuwählen, für die Sie das ASP-Debugging deaktivieren möchten, klicken Sie, um die Featureansicht auszuwählen, und doppelklicken Sie dann auf das ASP-Feature .

  3. Klicken Sie, um die Kompilierung zu erweitern, klicken Sie, um Debugeigenschaften zu erweitern, und überprüfen Sie, ob sowohl clientseitiges Debuggen als auch serverseitiges Debuggen auf "False" festgelegt sind.

  4. Klicken Sie bei Bedarf im Bereich Aktionen auf Übernehmen.

    Deaktivieren Sie das Debuggen für ASP.NET Anwendungen und Webdienste, indem Sie den <Abschnitt "compilation debug="false"> in der web.config Datei für die Webanwendung angeben.

Anpassen des Werts der ASP-Threads-pro-Prozessor-Grenzeigenschaft

Die EIGENSCHAFT "ASP Threads per Processor Limit " gibt die maximale Anzahl von Arbeitsthreads pro Prozessor an, die IIS erstellt. Erhöhen Sie den Wert für die Threads pro Prozessorbeschränkung, bis die Prozessorauslastung mindestens 50 Prozent oder höher 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 am Standardwert bleiben, es sei denn, Ihre ASP-Anwendungen führen erweiterte Aufrufe an externe Komponenten durch. In diesem Fall können Sie den Wert von Threads pro Prozessorlimit erhöhen. Auf diese Weise kann der Server weitere 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, um die Featureansicht auszuwählen, und doppelklicken Sie dann auf das ASP-Feature .

  1. Klicken Sie auf „Start“, zeigen Sie auf „Alle Programme“, klicken Sie auf „Verwaltungstools“ und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).

  2. Wählen Sie im Bereich "Verbindungen " den Webserver aus, klicken Sie, um die Ansicht "Features" auszuwählen, und doppelklicken Sie dann auf das ASP-Feature .

  3. Klicken Sie hier, um Grenzwerteigenschaften 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 IIS 7.5/7.0 <asp>-Elements finden Sie unter ASP Limits <limits> (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.

Den Wert der ASP-Queue-Length-Eigenschaft anpassen

Ziel der Optimierung dieser Eigenschaft ist es, eine gute Antwortzeit zu gewährleisten und gleichzeitig zu minimieren, wie oft der Server den HTTP 503 -Fehler (Server zu ausgelastet) an Clients sendet, wenn die ASP-Anforderungswarteschlange voll ist. Wenn der Wert der ASP Queue Length-Eigenschaft zu niedrig ist, sendet der Server den HTTP 503-Fehler mit größerer Häufigkeit. Wenn der Wert der ASP Queue Length-Eigenschaft zu hoch ist, nehmen Benutzer möglicherweise wahr, dass der Server nicht antwortet, wenn die Anforderung tatsächlich in der Warteschlange wartet. Wenn Sie die Warteschlange in Zeiten von hohem Datenverkehr beobachten, sollten Sie ein Muster von Webanforderungsspitzen und Tälern 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 verarbeiten, die Reaktionszeit sicherzustellen und das System zu drosseln, um eine Überlastung bei anhaltenden, unerwarteten Spitzen zu vermeiden. Wenn Sie keine Daten zum Anpassen der ASP Queue Length-Eigenschaft haben, wäre ein guter Ausgangspunkt, ein 1:1-Verhältnis von Warteschlangen zu Gesamtthreads einzurichten. Wenn z. B. die EIGENSCHAFT ASP Threads per Processor Limit auf 25 festgelegt ist und Sie vier Prozessoren haben (4 * 25 = 100 Threads), legen Sie die ASP Queue Length-Eigenschaft auf 100 fest und optimieren sie von dort aus.

Führen Sie die folgenden Schritte aus, um den Wert für die Eigenschaft "Warteschlangenlänge" zu erhöhen:

  1. Klicken Sie auf „Start“, zeigen Sie auf „Alle Programme“, klicken Sie auf „Verwaltungstools“ und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).

  2. Wählen Sie im Bereich "Verbindungen " den Webserver aus, klicken Sie, um die Ansicht "Features" auszuwählen, und doppelklicken Sie dann auf das ASP-Feature .

  3. Klicken Sie, um Eigenschaften der Grenzwerte unter "Verhalten" 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 IIS 7.5/7.0 <asp-Elements> 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 Sie den Registrierungseintrag "MaxPoolThreads"

Diese Einstellung gibt die Anzahl der Poolthreads an, die pro Prozessor erstellt werden sollen. Poolthreads überwachen das Netzwerk auf Anforderungen und verarbeiten eingehende Anforderungen. Die Anzahl "MaxPoolThreads" 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 in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\Parameters\ mit dem Standardwert 4.

Deaktivieren der Nachverfolgung von WCF-Diensten

Verwenden Sie das Konfigurationstool (SvcConfigEditor.exe), um das Tracing 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 der ASP.NET 2.0 MaxConcurrentRequests im integrierten Modus von IIS 7.5/7.0

Wenn ASP.NET 2.0 in IIS 7.5/7.0 im integrierten Modus gehostet wird, wird die Verwendung von Threads anders behandelt als in IIS 7.5/7.0 im klassischen Modus. Wenn ASP.NET 2.0 im integrierten Modus auf IIS 7.5 gehostet wird, schränkt ASP.NET 2.0 die Anzahl gleichzeitig ausgeführter Anforderungen ein, anstatt die Anzahl der gleichzeitig ausgeführten Threads. Bei synchronen Szenarien beschränkt dies indirekt die Anzahl der Threads, da die Anzahl der Anforderungen mit der Anzahl der Threads identisch ist. Bei asynchronen Szenarien ist die Anzahl der Anforderungen und Threads wahrscheinlich sehr unterschiedlich, da Sie weit mehr Anforderungen als Threads haben könnten. 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 der gleichzeitigen 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 auf die v2.0-Binärdateien, die das Konfigurieren von IIS-Anwendungspools über die aspnet.config-Datei unterstützen. Diese Konfiguration gilt nur für den integrierten Modus (Der klassische/ISAPI-Modus ignoriert diese Einstellungen). Der neue aspnet.config Konfigurationsabschnitt mit 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, sie werden jedoch 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" hat (die Standardeinstellung ist), gibt dies dem Anwendungspool bis zu 100 Arbeitsthreads (MaxWorkerThreads) pro logischer CPU. Ein gewöhnlicher Standardserver mit 2 Dual-Core-CPUs hätte 400 MaxWorkerThreads. Dies sollte für alle Anwendungen, außer den anspruchsvollsten, ausreichend sein.

Weitere Informationen zum Konfigurieren von ASP.NET Threadverwendung in IIS 7.5 finden Sie im Blog von Thomas Marquardt zum Thema "ASP.NET Threadverwendung" in IIS 7.0 (https://go.microsoft.com/fwlink/?LinkId=157518).

Konfigurieren von ASP.NET 4 MaxConcurrentRequests für den integrierten IIS 7.5/7.0-Modus

Mit .NET Framework 4 ist die Standardeinstellung für maxConcurrentRequestsPerCPU 5000, die eine sehr große Zahl ist und daher viele asynchrone Anforderungen gleichzeitig ausführen kann. Weitere Informationen finden Sie unter <applicationPool> Element (Web Settings) (https://go.microsoft.com/fwlink/?LinkID=205339).

Für den integrierten Modus von IIS 7.5/7.0 bestimmt ein DWORD namens MaxConcurrentRequestsPerCPU innerhalb HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0 die Anzahl der gleichzeitigen Anfragen 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

Um die verfügbare Bandbreite effizienter zu verwenden, aktivieren Sie die IIS-HTTP-Komprimierung. DIE HTTP-Komprimierung bietet eine schnellere Übertragungszeit zwischen komprimierten 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:

    1. Klicken Sie auf „Start“, zeigen Sie auf „Alle Programme“, klicken Sie auf „Verwaltungstools“ und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).

    2. Wählen Sie im Bereich "Verbindungen " den Webserver aus, klicken Sie, um die Ansicht "Features" auszuwählen, und doppelklicken Sie dann auf das Komprimierungsfeature .

    3. Legen Sie die gewünschten Komprimierungsoptionen fest, und klicken Sie dann auf "Übernehmen" im Aktionsbereich.

  • So konfigurieren Sie die Komprimierung auf Websiteebene:

    1. Klicken Sie auf „Start“, zeigen Sie auf „Alle Programme“, klicken Sie auf „Verwaltungstools“ und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).

    2. Klicken Sie im Bereich "Verbindungen ", um Websites zu erweitern, klicken Sie, um die Website auszuwählen, für die Sie die Komprimierung konfigurieren möchten, klicken Sie, um die Ansicht "Features" auszuwählen, und doppelklicken Sie dann auf das Komprimierungsfeature .

    3. Legen Sie die gewünschten Komprimierungsoptionen fest, und klicken Sie dann im Bereich "Aktionen" auf "Übernehmen".

Siehe auch

Optimieren der Leistung