Appliquer les paramètres de configuration d’IIS
Par défaut, les adaptateurs WCF basés sur SOAP, HTTP et HTTP (et .NET en général) n’ouvrent que deux connexions HTTP simultanées de chaque hôte BizTalk instance à un serveur de destination spécifique. Par exemple, si vous avez un port d’envoi SOAP qui envoie des messages à http://www.contoso.com/SomeWebService.asmx
, chaque instance hôte s’exécutant sur chaque BizTalk Server n’ouvre que deux connexions HTTP simultanées à www.contoso.com, quel que soit le nombre de messages à envoyer.
Ce paramètre est conforme à la spécification IETF RFC pour la spécification HTTP 1.1, et bien qu’il soit adapté aux scénarios utilisateur, il n’est pas optimisé pour les communications serveur à haut débit. Le paramètre par défaut limite efficacement les appels SOAP et HTTP sortants vers chaque serveur de destination à deux envois simultanés de chaque BizTalk Server instance hôte.
Configurer ASP.NET MaxConcurrentRequests pour le mode intégré IIS 7.0
Quand ASP.NET 2.0 est hébergé sur IIS 7.0 en mode intégré, l’utilisation des threads est gérée différemment de celle d’IIS 6.0 ou d’IIS 7.0 en mode classique. Lorsque ASP.NET 2.0 est hébergé sur IIS 7.0 en mode intégré, ASP.NET 2.0 limite le nombre de requêtes en cours d’exécution simultanée au lieu du nombre de threads exécutant des demandes simultanément. Pour les scénarios synchrones, cela limite indirectement le nombre de threads, car le nombre de demandes sera identique au nombre de threads. Toutefois, pour les scénarios asynchrones, le nombre de demandes et de threads sera probablement très différent, car vous pourriez avoir beaucoup plus de demandes que de threads. Lorsque vous exécutez ASP.NET 2.0 sur IIS 7.0 en mode intégré, les éléments minFreeThreads et minLocalRequestFreeThreads de l’élément « httpRuntime » dans le machine.config sont ignorés. Pour le mode intégré IIS 7.0, un DWORD nommé MaxConcurrentRequestsPerCPU dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0 détermine le nombre de demandes simultanées par processeur. Par défaut, la clé de Registre n’existe pas et le nombre de demandes par processeur est limité à 12. .NET Framework 3.5 SP1 inclut une mise à jour des fichiers binaires v2.0 qui prend en charge la configuration des pools d’applications IIS via le fichier aspnet.config. Cette configuration s’applique uniquement au mode intégré (le mode Classique/ISAPI ignore ces paramètres). La nouvelle section de configuration aspnet.config avec les valeurs par défaut est répertoriée ci-dessous :
<system.web>
<applicationPool maxConcurrentRequestsPerCPU="12" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000"/>
</system.web>
En règle générale, MaxConcurrentRequestsPerCPU doit être défini sur une valeur très élevée, telle que 5000.
En mode intégré IIS 7.0, les paramètres maxWorkerThreads et maxIoThreads de la section « processModel » du fichier machine.config ne sont pas utilisés pour régir le nombre de demandes en cours d’exécution, mais ils sont toujours utilisés pour régir la taille du pool de threads CLR utilisé par ASP.NET. Lorsque la section « processModel » du machine.config a « autoConfig=true » (qui est le paramètre par défaut), le pool d’applications peut avoir jusqu’à 100 threads de travail (MaxWorkerThreads) par processeur logique. Ainsi, un serveur de base commun avec 2 processeurs double cœur aurait 400 MaxWorkerThreads. Cela devrait être suffisant pour toutes les applications sauf les plus exigeantes.
Pour plus d’informations sur la configuration de l’utilisation des threads ASP.NET sur IIS 7.0 et 6.0, consultez le blog de Thomas Marquardt sur l’utilisation des threads ASP.NET sur IIS 7.0 et 6.0 (https://go.microsoft.com/fwlink/?LinkId=157518).
Journaliser uniquement les informations essentielles ou désactiver complètement la journalisation IIS
La journalisation IIS doit être réduite ou même désactivée dans un environnement de production. Pour désactiver la journalisation, procédez comme suit :
Cliquez sur Démarrer, pointez sur Tous les programmes, sur Outils d’administration, puis sur Gestionnaire des services Internet (IIS).
Dans le volet Connexions , cliquez pour développer Sites, sélectionnez le site web pour lequel vous souhaitez désactiver la journalisation, cliquez pour sélectionner l’affichage des fonctionnalités, puis double-cliquez sur la fonctionnalité Journalisation .
Cliquez sur Désactiver dans le volet Actions pour désactiver la journalisation pour ce site Web.
Désactiver le débogage ASP IIS dans les environnements de production
Le débogage ASP IIS doit être désactivé dans un environnement de production. Pour désactiver le débogage ASP IIS, procédez comme suit :
Cliquez sur Démarrer, pointez sur Tous les programmes, sur Outils d’administration, puis sur Gestionnaire des services Internet (IIS).
Dans le volet Connexions , cliquez pour développer Sites, sélectionnez le site web pour lequel vous souhaitez désactiver le débogage ASP, cliquez sur pour sélectionner l’affichage des fonctionnalités, puis double-cliquez sur la fonctionnalité ASP .
Cliquez pour développer Compilation, cliquez pour développer Propriétés de débogage et vérifiez que l’option Activer le débogage côté client et Activer le débogage côté serveur ont la valeur False.
Si nécessaire, cliquez sur Appliquer dans le volet Actions .
Désactivez le débogage des applications ASP.NET et des services web en spécifiant la <section de compilation debug="false »> dans le fichier web.config de l’application web.
Régler la valeur de la propriété Asp Threads Per Processor Limit
La propriété Asp Threads Per Processor Limit spécifie le nombre maximal de threads de travail créés par IIS par processeur. Augmentez la valeur de la limite de threads par processeur jusqu’à ce que l’utilisation du processeur atteigne au moins 50 % ou plus. Ce paramètre peut considérablement influencer la scalabilité de vos applications web et les performances de votre serveur en général. Étant donné que cette propriété définit le nombre maximal de requêtes ASP pouvant s’exécuter simultanément, ce paramètre doit rester à la valeur par défaut, sauf si vos applications ASP effectuent des appels étendus à des composants externes. Dans ce cas, vous pouvez augmenter la valeur de la limite de threads par processeur. Cela permet au serveur de créer davantage de threads pour gérer davantage de demandes simultanées. La valeur par défaut de Threads par limite de processeur est 25. La valeur maximale recommandée pour cette propriété est 100.
Pour augmenter la valeur de la limite de threads par processeur, procédez comme suit :
Cliquez sur Démarrer, pointez sur Tous les programmes, sur Outils d’administration, puis sur Gestionnaire des services Internet (IIS).
Dans le volet Connexions , sélectionnez le serveur web, cliquez pour sélectionner Vue des fonctionnalités, puis double-cliquez sur la fonctionnalité ASP .
Cliquez pour développer Les propriétés des limites sous Comportement, cliquez sur Threads par limite de processeur, entrez la valeur souhaitée pour Threads par limite de processeur , puis cliquez sur Appliquer dans le volet Actions .
Pour plus d’informations sur la modification des propriétés dans l’élément <limits> de l’élément asp> IIS 7.0<, consultez Limites> ASP < (https://go.microsoft.com/fwlink/?LinkId=157483).
Notes
Étant donné que cette propriété ne peut être appliquée qu’au niveau du serveur, la modification de cette propriété affecte tous les sites Web qui s’exécutent sur le serveur.
Notes
La propriété Asp Threads Per Processor Limit pour IIS 7.0 remplace le paramètre de métabase ASPProcessorThreadMax IIS 6.0. Pour plus d’informations sur le paramètre de métabase ASPProcessorThreadMax d’IIS 6.0, consultez Paramétrage des paramètres de métabase ASP (https://go.microsoft.com/fwlink/?LinkId=158834) sur MSDN.
Paramétrez la valeur de la propriété Longueur de file d’attente ASP
L’objectif du réglage de cette propriété est de garantir un temps de réponse correct tout en réduisant la fréquence à laquelle le serveur envoie l’erreur HTTP 503 (Serveur trop occupé) aux clients lorsque la file d’attente des requêtes ASP est pleine. Si la valeur de la propriété Longueur de file d’attente ASP est trop faible, le serveur envoie l’erreur HTTP 503 avec une fréquence plus élevée. Si la valeur de la propriété Longueur de file d’attente ASP est trop élevée, les utilisateurs peuvent percevoir que le serveur ne répond pas alors que leur demande est en attente dans la file d’attente. En observant la file d’attente pendant les périodes de trafic élevé, vous devez discerner un modèle de pics et de vallées de requêtes web. Notez la valeur maximale et définissez la valeur de la propriété Longueur de file d’attente ASP juste au-dessus de la valeur maximale. Utilisez la file d’attente pour gérer les pics à court terme, garantir le temps de réponse et limiter le système afin d’éviter une surcharge en cas de pics inattendus et soutenus. Si vous n’avez pas de données pour ajuster la propriété Longueur de file d’attente ASP, un bon point de départ consiste à définir un ratio un-à-un de files d’attente par rapport au nombre total de threads. Par exemple, si la propriété Asp Threads Per Processor Limit est définie sur 25 et que vous avez quatre processeurs (4 * 25 = 100 threads), définissez la propriété Longueur de file d’attente ASP sur 100 et réglez à partir de là.
Pour augmenter la valeur de la propriété Longueur de file d’attente, procédez comme suit :
Cliquez sur Démarrer, pointez sur Tous les programmes, sur Outils d’administration, puis sur Gestionnaire des services Internet (IIS).
Dans le volet Connexions , sélectionnez le serveur web, cliquez pour sélectionner Affichage des fonctionnalités, puis double-cliquez sur la fonctionnalité ASP .
Cliquez pour développer Les propriétés limites sous Comportement, cliquez sur Longueur de file d’attente, entrez la valeur souhaitée pour Longueur de file d’attente , puis cliquez sur Appliquer dans le volet Actions .
Pour plus d’informations sur la modification des propriétés dans l’élément <limits> de l’élément asp> IIS 7.0<, consultez Limites> ASP < (https://go.microsoft.com/fwlink/?LinkId=157483).
Notes
Étant donné que cette propriété ne peut être appliquée qu’au niveau du serveur, la modification de cette propriété affecte tous les sites Web qui s’exécutent sur le serveur.
Notes
La propriété Longueur de file d’attente ASP pour IIS 7.0 remplace le paramètre de métabase ASP ASP IIS 6.0 AspRequestQueueMax . Pour plus d’informations sur le paramètre de métabase ASP ASP IIS 6.0 AspRequestQueueMax, consultez Paramétrage des paramètres de métabase ASP (https://go.microsoft.com/fwlink/?LinkId=158834) sur MSDN.
Paramétrer l’entrée de Registre MaxPoolThreads
Ce paramètre spécifie le nombre de threads de pool à créer par processeur. Les threads de pool watch le réseau pour les demandes et traitent les demandes entrantes. Le nombre MaxPoolThreads n’inclut pas les threads consommés par les applications ISAPI. En règle générale, vous ne devez pas créer plus de 20 threads par processeur. MaxPoolThreads est une entrée de Registre REG_DWORD située à HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\Parameters\ avec une valeur par défaut de 4.
Désactiver le suivi des services WCF
Utilisez l’outil Éditeur de configuration (SvcConfigEditor.exe) pour désactiver le suivi des services WCF dans un environnement de production. Pour plus d’informations sur l’outil Éditeur de configuration, consultez Outil Éditeur de configuration (SvcConfigEditor.exe) (https://go.microsoft.com/fwlink/?LinkID=127070).