Optimisation des performances d’IIS
Appliquer les options de configuration IIS pour améliorer les performances IIS
Internet Information Services (IIS) expose de nombreux paramètres de configuration qui affectent les performances IIS. Cette rubrique décrit plusieurs de ces paramètres et fournit des conseils généraux pour définir les valeurs de paramètres afin d’améliorer les performances IIS.
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, cliquez 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, sélectionnez 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 : dans le volet Connexions , cliquez pour développer Sites, sélectionnez le site web pour lequel vous souhaitez désactiver le débogage ASP, sélectionnez Affichage des fonctionnalités, puis double-cliquez sur la fonctionnalité ASP . Cliquez pour développer Compilation, développez 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.
Cliquez sur Démarrer, pointez sur Tous les programmes, cliquez 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 pour sélectionner l’affichage fonctionnalités, puis double-cliquez sur la fonctionnalité ASP .
Cliquez pour développer Compilation, développez 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 pour ASP.NET applications et les services web en spécifiant la <section de compilation debug="false »> dans le fichier web.config pour l’application web.
Ajuster 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 par processeur créés par IIS. Augmentez la valeur de la limite de threads par processeur jusqu’à ce que l’utilisation du processeur soit supérieure ou égale à 50 %. Ce paramètre peut influencer considérablement 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 des threads par limite de processeur. Cela permet au serveur de créer davantage de threads pour gérer plus de requêtes 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 : Dans le volet Connexions , sélectionnez le serveur web, sélectionnez Vue des fonctionnalités, puis double-cliquez sur la fonctionnalité ASP .
Cliquez sur Démarrer, pointez sur Tous les programmes, cliquez sur Outils d’administration, puis sur Gestionnaire des services Internet (IIS).
Dans le volet Connexions , sélectionnez le serveur web, sélectionnez Vue des fonctionnalités, puis double-cliquez sur la fonctionnalité ASP .
Cliquez pour développer Propriétés 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.5/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.
Ajuster la valeur de la propriété Longueur de file d’attente ASP
L’objectif du paramétrage de cette propriété est de garantir un bon temps de réponse 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 de 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 qu’en fait leur demande est en attente dans la file d’attente. En regardant 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 de pointe et définissez la valeur de la propriété Longueur de file d’attente ASP juste au-dessus de la valeur de pointe. 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 la surcharge en cas de pics inattendus et soutenus. Si vous ne disposez pas de données permettant d’ajuster la propriété Longueur de file d’attente ASP, un bon point de départ consiste à définir un ratio un-à-un entre les files d’attente et le nombre total de threads. Par exemple, si la propriété Threads ASP par limite de processeur 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-y.
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, cliquez sur Outils d’administration, puis sur Gestionnaire des services Internet (IIS).
Dans le volet Connexions , sélectionnez le serveur web, sélectionnez Vue des fonctionnalités, puis double-cliquez sur la fonctionnalité ASP .
Cliquez pour développer 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.5/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.
Ajuster 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 requêtes et traiter les demandes entrantes. Le nombre MaxPoolThreads n’inclut pas les threads qui sont 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 la valeur par défaut 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).
Configurer ASP.NET 2.0 MaxConcurrentRequests pour le mode intégré IIS 7.5/7.0
Lorsque ASP.NET 2.0 est hébergé sur IIS 7.5/7.0 en mode intégré, l’utilisation de threads est gérée différemment de celle d’IIS 7.5/7.0 en mode classique. Lorsque ASP.NET 2.0 est hébergé sur IIS 7.5 en mode intégré, ASP.NET 2.0 limite le nombre de requêtes exécutées simultanément au lieu du nombre de threads exécutant simultanément des requêtes. Pour les scénarios synchrones, cela limitera 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 requêtes et de threads sera probablement très différent, car vous pourriez avoir beaucoup plus de requêtes que de threads. Lorsque vous exécutez ASP.NET 2.0 sur IIS 7.5 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.5, un DWORD nommé MaxConcurrentRequestsPerCPU dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0 détermine le nombre de requêtes 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 mode intégré IIS 7.5, 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 requêtes 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 » de l'machine.config a « autoConfig=true » (qui est le paramètre par défaut), cela donne au pool d’applications jusqu’à 100 threads de travail (MaxWorkerThreads) par processeur logique. Ainsi, un serveur standard avec 2 processeurs double cœur aurait 400 MaxWorkerThreads. Cela devrait suffire pour toutes les applications, sauf pour les applications les plus exigeantes.
Pour plus d’informations sur la configuration de ASP.NET utilisation des threads sur IIS 7.5, consultez le blog de Thomas Marquardt sur ASP.NET’utilisation des threads sur IIS 7.0 (https://go.microsoft.com/fwlink/?LinkId=157518).
Configurer ASP.NET 4 MaxConcurrentRequests pour le mode intégré IIS 7.5/7.0
Avec .NET Framework 4, le paramètre par défaut pour maxConcurrentRequestsPerCPU est 5000, ce qui est un très grand nombre et permet donc à de nombreuses requêtes asynchrones de s’exécuter simultanément. Pour plus d’informations, consultez <applicationPool> , élément (paramètres web) (https://go.microsoft.com/fwlink/?LinkID=205339).
Pour le mode intégré IIS 7.5/7.0, un DWORD nommé MaxConcurrentRequestsPerCPU dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.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é à 5 000.
Activer la compression HTTP IIS
Pour utiliser plus efficacement la bande passante disponible, activez la compression HTTP IIS. La compression HTTP offre un temps de transmission plus rapide entre les navigateurs avec compression et IIS, que votre contenu soit traité à partir d’un stockage local ou d’une ressource UNC.
Pour configurer la compression au niveau du serveur web :
Cliquez sur Démarrer, pointez sur Tous les programmes, cliquez sur Outils d’administration, puis sur Gestionnaire des services Internet (IIS).
Dans le volet Connexions , sélectionnez le serveur web, sélectionnez Vue des fonctionnalités, puis double-cliquez sur la fonctionnalité Compression .
Définissez les options de compression souhaitées, puis cliquez sur Appliquer dans le volet Actions .
Pour configurer la compression au niveau du site web :
Cliquez sur Démarrer, pointez sur Tous les programmes, cliquez 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 configurer la compression, sélectionnez Affichage des fonctionnalités, puis double-cliquez sur la fonctionnalité Compression .
Définissez les options de compression souhaitées, puis cliquez sur Appliquer dans le volet Actions .