Ce billet est quelque peu technique, âmes sensibles, vous êtes prévenues.
Suite à la migration d’un serveur Windows 2003 / IIS6 vers un Windows 2008 / IIS7, nous avons eu un soucis de performance.
Nous avons utilisé l’utilitaire MSDeploy (http://www.iis.net/download/webdeploy) qui permet de faire une sauvegarde de la configuration IIS6 (la source) et une restauration sur un IIS7 (la cible).
Une fois mis en place et ouvert aux utilisateurs, les performances se sont révélées exécrables, alors que tous nos tests étaient concluants… Le problème venait d’un paramètre qui ne s’exprime pas de la même façon sur le IIS6 et le IIS7. Le mode débug.
Sur IIS6, aucune limitation alors que sur IIS7, ce mode activé a pour effet de limiter l’exécution du processus w3wp.exe à un seul thread par pool d’application. L’effet est assez déroutant, on a un serveur qui ronronne, RAM : ok, proc : ok, réseau : ok. mais les temps d’exécution sont hyper longs cas ils sont mis en file d’attente.
interface sous IIS6
interface sous IIS7
L’effet sur le serveur : debug activé
Débug désactivé :
Une des pistes a été trouvée dans cet article : http://support.microsoft.com/kb/316451
« la cause classique est que le débogage de script ASP est activée. Lorsque le débogage est activé, seul thread de travail ASP est disponible pour traiter les demandes entrantes pour les pages ASP » ou en anglais : « When debugging is enabled, only one ASP worker thread is available to process the incoming requests for ASP pages. »