Introduction
1. Rappels sur IIS
1.1. Qu’est-ce qu’IIS ?
1.2. Comment administrer IIS ?
1.3. Quelles sont les données fournies par IIS ?
1.4. Que faut-il optimiser alors ?
2. La mémoire
2.1. Les besoins
2.2. La mémoire pour NT
2.3. La mémoire pour IIS
2.4. Conclusion: Conseils d’optimisation concernant la mémoire
3. Les processeurs
3.1. Les besoins
3.2. Les processeurs pour NT
a) La ressource utilisée
b) Contrôle des interruptions et des DPC
c) DPCs et cartes réseaux
3.3. Les processeurs pour IIS
a) Les connexions HTTP persistantes
b) Le nombre de connexions
c) Parlons threads
3.4. Conclusion: Conseils d’optimisation concernant les processeurs
4. Le réseau
4.1. Les besoins
4.2. Le réseau pour NT
a) La bande passante
b) La capacité du réseau
4.3. Le réseau pour IIS
a) Mesurer les performances
b) Le contrôle de la bande passante
4.4. Conclusion: Conseils d’optimisation concernant le réseau
5. La Sécurité
5.1. Les besoins
5.2. La sécurité pour NT
5.3. La sécurité pour IIS
a) Stressez votre site
b) Quels compteurs examiner ?
c) Au niveau des composants compilés
5.4. Conclusion: Conseils d’optimisation concernant la sécurité
6. Les Applications
6.1. Les compteurs Perfmon
6.2. WAM
6.3. Les principaux ajustements
a) Ajustement de la réserve de threads et de la file d’attente ASP
b) Augmentez le nombre de moteurs de scripts mis en cache
c) Ajustez le nombre de fichiers ASP mis en cache
d) Ajustez le ‘timeout’ des scripts ASP
e) Paramétrage et metabase
6.4. Les scripts côtés client
6.5. Les moteurs de script
6.6. Gérer au mieux son cache
6.7. Optimisez votre code ASP
6.8. Les composants COM
6.9. Les variables sessions et applications
6.10. Les accès aux bases de données
7. IIS 5.0 et les gains en performance
7.1. Nouveautés et améliorations concernant le service WWW
7.2. Nouveautés et améliorations concernant ASP
Conclusion
Bibliographie
Introduction
Dans le cadre de ce document, il faut considérer avant tout Internet Information Server (IIS) comme un serveur de protocole. Le code des pages qui tourne dans un serveur Internet étant le fruit d’un développement personnel, l’optimisation d’un serveur IIS est en très grande partie une question d’optimisation de ce code et non une question d’ajustement de paramètres propres au comportement d’IIS en tant que service NT.
Certes, et nous le verrons dans la majeure partie de ce document, ces paramètres existent et peuvent améliorer les performances par rapport à votre environnement et votre utilisation d’IIS mais gardez à l’esprit que si un code est mal écrit, si il entraîne une lenteur d’exécution, vous ne pourrez jamais contrebalancer cette lenteur par une optimisation du service Web.
1. Rappels sur IIS
1.1. Qu’est-ce qu’IIS ?
IIS est un serveur de protocoles. C’est plus précisément un jeu de services utilisant les protocoles Internet les plus répandus :
– HTTP
– FTP
– NNTP (Network News Transfer Protocol)
– SMTP (Simple Mail Transfer Protocol)
– HTTP: le plus célèbre pour servir des pages au format HTML
Note importante: Ce document ne traitera que de l’optimisation du serveur HTTP. Ace titre, par abus de langage, nous désignerons dans la suite de ce document par « IIS » ou « serveur Web » le serveur HTTP uniquement.
D’autre part, le produit s’accompagne d’un jeu d ’APIs pour étendre les possibilités du serveur :
– CGI (Common Gateway Interface)
– ISAPI (Internet Server API)
1.2. Comment administrer IIS ?
Pour administrer son serveur IIS, les outils sont:
La Microsoft Management Console (MMC) qui est l’outil à employer de préférence et qui donne une unique interface pour gérer tous les aspects du service. Par la MMC, vous modifiez des propriétés et des valeurs qui sont enregistrées dans la metabase. Pour se représenter la metabase, vous pouvez faire le parallèle suivant: la metabase est à IIS ce que la base de registre est à NT.En effet, toutes les informations propres à la configuration d’IIS sont stockées dans ce fichier dédié qu’il est possible de modifier également:
– par programmation (comme un script via ADSI)
– par des utilitaires en ligne de commande tels que ceux fournis en standard avec le produit (scripts d’administration et ADSUTIL.vbs se trouvant dans le répertoire :
%systemroot%\system32\inetsrv\adminsamples)
– par des utilitaires graphiques tels que MetaEdit
1.3. Quelles sont les données fournies par IIS ?
IIS fournira par HHTP les pages que vous avez écrites. Les applications web executeront votre code ASP, lanceront les composants que vous avez mentionné (voir même créé). Optimiser son serveur c’est avant tout optimiser le code de vos applications.
1.4. Que faut-il optimiser alors ?
L’optimisation d’un serveur IIS passe dans un premier temps, nous l’avons déjà dit, par l’optimisation des applications. Mais il est certain que si le système sur lequel s’appuie le service Web est sous dimensionné par rapport à la charge demandée, les performances générales s’en trouveront diminuées. Pour vérifier que le système est correctement dimensionné et configuré il faut analyser les besoins et les disponibilités concernant les ressources standards:
– la mémoire
– les processeurs
– le réseau
2. La mémoire
2.1. Les besoins
Dire qu’IIS et NT ont besoin de mémoire vive pour fonctionner est un évidence. Dire que plus la quantité de RAM présente est grande plus cette ressource ne sera pas limitative vis à vis des performances en est une autre.
Par contre, il est important de savoir quels sont les besoins en mémoire d’IIS et comment ces besoins sont répartis.
Qu’est-ce qui est stocké dans la mémoire par un serveur IIS ?
– IIS lui-même: 2.5 Mo, cela correspond à l’espace de travail d’inetinfo (2 Mo + 0,5 Mo pour ASP)
– Les fichiers des pages web fréquemment utilisés par IIS: le nombre et la taille varient suivant l’installation. Ils sont stockés dans le cache du système de fichiers, un emplacement de la mémoire physique réservé aux pages fréquemment employées.
– Les objets fréquemment utilisés: objets fréquemment utilisés par le service IIS (hand les de fichiers, listes de répertoires, etc…)
– Le fichier du journal d’IIS (par blocs de 64 Ko)
– Le Tableau TCB (TCP tient a jour une table de blocs de contrôle de transmission afin de stocker des données pour chaque connexion TCP, IIS a besoin de cette table et va augmenter sa taille). Ceci est de la mémoire non-paginable.
– Le réserve de threads, non-paginable également.
2.2. La mémoire pour NT
Il convient de s’assurer que la quantité de mémoire disponible est suffisante à NT avant même de se demander si ce que va fournir NT à IIS est suffisant. Pour déterminer si une ressource est suffisante et comme dans tout problème d’optimisation sous NT, l’outil à employer est l’analyseur de performance (Perfmon).Pour cela gardez à l’esprit les points suivants:
– il faut observer l’activité pendant une période d’activité normale (et non un creux comme la nuit) et prévoir toujours les accroissements occasionnels (pointes le matin à l’arrivée des utilisateurs sur site par exemple)
– il faut observer l’activité sur une durée suffisamment grande pour être parlante (un log pris sur dix minutes ne sera pas représentatif)..
Optimiser son serveur Web (2231 KO) (Cours PDF)