ANALYSE
Sommaire Infrastructure 
8 conseils pour optimiser sa gestion de serveurs Web frontaux
Lorsque la fréquentation augmente ou qu'un site se complexifie, l'optimisation des serveurs Web s'impose pour maîtriser les coûts. Gros plan sur cette étape clé avec trois experts.   (26/05/2006)
  En savoir plus
 Prosodie
 NetAktiv
 Artful
Dossier Sites Web
Forum Direction technique de sites Web
Face aux variations de fréquentation d'un site Internet, la première étape dans l'absorption du trafic passe par les serveurs frontaux, également appelés serveurs Web ou serveurs HTTP. Ces équipements se chargent de fournir les pages Web et les images demandées par les internautes, d'interpréter les langages de programmation Web pour les sites dynamiques et de faire le lien entre la partie frontale et les applications.

Or, aujourd'hui, les technologies de ces serveurs Web sont bien connues et maîtrisées et peuvent faire l'objet d'optimisations par des équipes d'exploitation. A travers le matériel, la configuration logicielle ou des astuces de paramétrage, le site Web peut gagner rapidement en performances et, ainsi, accroître sa capacité sans investissement massif.

En avril 2006, les outils Apache et Microsoft IIS détenaient 90% de parts de marché dans le monde, selon les chiffres de Netcraft. Nous nous sommes donc intéressés principalement à ces deux environnements, bien que certains conseils puissent être appliqués à tous les types de serveurs Web car ils reposent sur le fonctionnement même du Web et non pas sur une technologie particulière.

1) Evaluer les points de blocage
C'est la première étape avant de commencer à optimiser la configuration de son serveur Web, elle est essentielle puisqu'elle déterminera l'efficacité des mesures prises par la suite. "Avant de décider de tuner son serveur Web, il faut voir ce que donne l'applicatif lui-même. Cela commence par un audit pour avoir des points de performance et savoir où le système bloque et à partir de quel moment", explique Emmanuel David, directeur technique d'Artful, société de services du groupe Claranet.

"Ainsi, on s'assure d'agir sur le paramètre qu'il faut. Cela ne sert à rien de tout augmenter d'un coup. Après, il y a deux techniques pour réaliser cet audit : manuellement - en étudiant la montée en charge, le point de rupture et les paramètres associés -, ou automatiquement, via des outils du marché qui effectuent des tests de montée en charge", ajoute Emmanuel David.

2) Eliminer les modules superflus sous Apache
Le serveur Web Apache est conçu sous forme de modules dont l'administrateur peut user pour ajouter ou retirer des fonctions à ses machines. Comme la configuration d'origine ne convient pas à tous les usages, il est parfois intéressant de se pencher sur l'ensemble des modules présents pour envisager la possibilité d'en retirer quelques uns.

"Plus on rajoute de modules sur un serveur HTTP, plus la mémoire occupée va être importante et plus potentiellement le serveur sera lent. C'est pour cette raison qu'il est parfois préférable de compiler soi même les instances du serveur", déclarent Béatrice Rollet et Tony Jarriault, responsables au sein de la division infogérance de Prosodie.

Attention cependant : "En optimisant ces modules, l'entreprise sort d'une configuration classique et les mises à jours futures d'Apache ne concerneront pas forcément le site, ce qui rallonge le temps d'administration", prévient Pierre-Gilles Mialon, responsable d'exploitation systèmes et réseaux pour la société de services NetAktiv.

3) Limiter le rôle du serveur Web
Si l'entreprise en a les moyens financiers et que le site le justifie, une architecture à trois niveaux peut faire la différence. L'idée de cette architecture consiste à déporter sur des serveurs indépendants la partie qui concerne les calculs liés à la base de données ou aux applications sur des machines indépendantes, séparées physiquement des serveurs Web. Le gain est immédiat sur des sites de commerce électronique ou des voyagistes (l'internaute visite les sites pour les services) et moins sensible sur des sites institutionnels (l'internaute consulte une information qui ne change pas).

D'autre part, le responsable d'exploitation doit prendre garde aux calculs exécutés coté serveur comme le cryptage SSL des pages Web sécurisées, l'utilisation d'un langage interprété comme Java, ASP ou PHP qui alourdissent le serveur Web par des calculs supplémentaires. Tant que cela est possible, il est parfois préférable de déporter ces calculs coté client (Javascript, Flash) tout en conservant une solution de secours coté serveur dans le cas où le client ne serait pas doté des outils nécessaires.

4) Limiter le temps de réponse des requêtes Web et le nombre de processus lancés
Ces mesures présentent un double intérêt : d'une part, elles limitent les attaques en déni de service et renforce la sécurité du site, d'autre part elles évitent une panne du serveur dans le cas d'une période d'affluence.

Le temps de réponse - ou timeout - correspond au délai pendant lequel le serveur Web attend une réponse de la part du client et laisse la requête ouverte. Sur Microsoft IIS, l'administrateur peut jouer sur les connexions réseaux qui détiennent les fichiers Web pour éviter l'engorgement.

5°) Recourir au streaming pour du contenu multimédia
"Il est aberrant de mettre une vidéo directement sur un site Web car les conséquences sont importantes à la fois sur la bande passante et l'occupation mémoire. Il existe pour cela des technologies de streaming très efficaces comme Flash, Microsoft Windows Media, QuickTime et Real Audio.

Avec Windows Server 2003, Microsoft offre gratuitement Windows Media Service, qui peut offrir des fonctions de streaming. Si ces mesures ne sont pas suffisantes, le site Web aura intérêt à se tourner vers des solutions de cache de type Akamai", affirme Emmanuel David.

6) Ajuster son équipement matériel en fonction des traitements du serveur Web
"Aujourd'hui, la limitation des serveurs Web ne se situe pas vraiment au niveau des processeurs mais plus dans la gestion des entrées / sorties, ce qui implique un système RAID au niveau des disques dur. La configuration optimum serait d'avoir systématiquement un réseau de stockage SAN derrière mais ce n'est pas toujours possible économiquement. Dans certains cas, les accès disques peuvent être limités par l'intermédiaire de proxy", souligne Pierre-Gilles Mialon.

Si le serveur Web joue le rôle de proxy, c'est-à-dire qu'il stocke l'état des pages à un instant T pour la distribuer à tous les clients, il faudra être attentif à la capacité mémoire du serveur. En moyenne, les serveurs Web actuels commercialisés sont équipés de 2 Go de RAM, un ou plusieurs disques SCSI et une architecture bi-processeur. Un simple renouvellement de vieilles machines ou une mise à jour s'avère parfois indispensable pour gérer la montée en charge.

7) Faire appel à des solutions de cache ou à des répartiteurs de charge
Sur le serveur Web directement, l'administrateur a la possibilité de placer des solutions de cache applicatif (Zend Optimizer ou eAccelerator par exemple), afin d'accélérer l'interprétation du code PHP. Des boîtiers matériels de type Deny All ou Foundry font appel à des modules Apache comme Mod_Gzip afin minimiser le travail du serveur Web. Il existe aussi des solutions de cache mémoire et d'accélération SSL (Bee-Ware, F5 Networks, Redline). Cependant, plus un site se base sur des informations dynamiques pour servir l'internaute et moins ces solutions de cache auront leur utilité en pratique.

  En bref sur le sujet
    MeeGo : AMD rejoint Intel  (16/11/2010)
    Stockage : EMC rachète Isilon Systems  (16/11/2010)
    Sécurité : nombre de patches record pour Mac OS X  (15/11/2010)
    Completel rachète Altitude Telecom  (15/11/2010)
    Nec lance sa tablette tactile sous Android  (15/11/2010)
Pour un site où le nombre d'utilisateurs simultanés dépasse le millier, les solutions de répartition de charge s'avèrent indispensables. Avec celles-ci, le site Internet répartit les requêtes selon la charge de ses différents serveurs Web et garantit ainsi une meilleure disponibilité et une plus grande flexibilité d'évolution.

8) Créer des règles d'accès au serveur Web
A travers le serveur Web, le responsable d'exploitation crée des règles d'accès minimisant le risque d'attaque en déni de service. "Apache garde en mémoire pendant un délai prédéfini l'adresse IP et la page Web demandée. Si une personne demande 30 fois cette page en l'espace d'une minute, l'IP en question sera bannie pendant 5 minutes et, si elle recommence, le serveur l'expulse pendant une heure", note Pierre-Gilles Mialon.

"Un autre travail assez efficace consiste à optimiser la pile IP de la distribution Linux sur laquelle se trouve le serveur Web de manière à éviter une saturation de requêtes HTTP auxquelles le client ne répondrait pas", ajoute Pierre-Gilles Mialon.

Yves DROTHIER, JDN Solutions Sommaire Infrastructure
 
Accueil | Haut de page
 
 

  Nouvelles offres d'emploi   sur Emploi Center
Auralog - Tellmemore | Publicis Modem | L'Internaute / Journal du Net / Copainsdavant | Isobar | MEDIASTAY

Voir un exemple

Voir un exemple

Voir un exemple

Voir un exemple

Voir un exemple

Toutes nos newsletters