OVH Cloud OVH Cloud

Problème de charge, quelle solution?

2 réponses
Avatar
Davy HUBERT
Bonjour,

Mon entreprise publie un site web qui a vu sa fréquentation augmentée de
manière considérable.

Nous utilisons :

Un serveur web :

a.. quadri processeur Xeon à 2 GHz et 1 Go de RAM
b.. Windows 2003 Server Standard Edition
c.. IIS 6.0
d.. ASP.NET
La publication du serveur web est assurée par un serveur ISA 2004.

a.. bi Xeon 3 GHz
b.. 2 Go de RAM
Les données du serveur sont stockées dans une BDD sur un autre serveur sous
SQL server 2000.



Aux heures de pointes d'utilisation du site, le site ralentit puis devient
inutilisable, nous sommes alors obligé de recycler le pool d'application du
site pour qu'il refonctionne. Comme cette manipulation est nécessaire de
plus en plus souvent, nous avons décidé d'opérer des changements physiques.

Toutefois, il faut savoir que la configuration réalisée sur IIS n'est pas
très évoluée et aucune optimisation particulière n'a été effectuée. IIS peut
il être optimisé pour mieux tenir la charge?



Dans le cas où il faille intervenir physiquement sur notre architecture nous
avons pensé séparer nos flux. Nous sommes une administration et nous avons
des bornes internet dans nos locaux qui accèdent aussi au site et enfin le
site propose aussi des outils de gestion réservés aux administratifs. Nous
avons donc pensé monter 3 serveurs chacun pour une catégorie d'utilisateur :

a.. Internautes
b.. Bornes internet locales
c.. Agents administratifs
Mais il y a un inconvénient à cela, le site utilise un répertoire dans
lequel sont stockés les fichiers autres que asp et html, c'est à dire les
images etc. Ce répertoire doit être tenu à jours entre les différentes
versions du site.



Donc deux solutions :

a.. soit nous centralisons tous les fichiers du site html compris (sur un
serveur de fichier) et les serveurs web ont un répertoire virtuel pointant
sur le partage du serveur de fichier. Ce qui a pour avantage de regrouper
tous les fichiers à un seul endroit. Une modification serait alors
immédiatement impactée sur les trois sites (puisqu'ils publiraient le meme
répertoire). Mais l'inconvénient serait d'avoir un flux énorme entre les
serveurs web et le serveur de fichier. Est ce une solution envisageable?
a.. soit nous synchronisons les différentes instances du site. Dans ce cas
les flux sont réellement séparés mais la maintenance en est que plus
complexe.
On a essayé la solution 1 mais cela retourne erreur http 500 lorsque l'on
essai d'accéder au site.



Existe-il un moyen de diagnostiquer le problème? Puis qu'il peut venir soit
:

a.. Du serveur ISA qui ne tient plus la charge
b.. Du serveur web qui ne tient plus la charge
c.. Du serveur sql qui ne tient plus la charge
Y'a t il un moyen d'optimiser Windows ou IIS 6.0 pour qu'il tienne mieux la
charge?

L'une des 2 solutions est elle bonne? ou existe-t-il un 3ième solution?



Voila par avance merci.

2 réponses

Avatar
Philippe [MS]
Le plus simple n'est pas nécessairement de gonfler le serveur Web mais
plutôt de mettre en place une ferme de serveur (utilisation par exemple de
NLB (solution logicielle - intégré à l'OS) ou d'un ALTEON (solution
matérielle) pour gérer l'équilibrage de charge entre les machines).

Pour la mise à jour, il est possible de gérer un environnement sur un
serveur de référence et d'utiliser par exemple un bête ROBOCOPY (avec les
bon paramètres permettant de ne mettre à jour que ce qui a été modifié).

La philosophie des produits Ms pour la montée en charge est plutôt de
répartir sur n machines que de centraliser sur des gros serveurs. L'avantage
c'est que rajouter un serveur additionnel coûte moins cher que de tout
remplacer pour disposer d'une plus grosse machine.

En résumé : n x serveurs constituant la ferme Web + un serveur de données
(éventuellement redondant avec un cluster pour géréer la tolérance de panne
si nécessaire).

Phil.


"Davy HUBERT" wrote in message
news:
Bonjour,

Mon entreprise publie un site web qui a vu sa fréquentation augmentée de
manière considérable.

Nous utilisons :

Un serveur web :

a.. quadri processeur Xeon à 2 GHz et 1 Go de RAM
b.. Windows 2003 Server Standard Edition
c.. IIS 6.0
d.. ASP.NET
La publication du serveur web est assurée par un serveur ISA 2004.

a.. bi Xeon 3 GHz
b.. 2 Go de RAM
Les données du serveur sont stockées dans une BDD sur un autre serveur


sous
SQL server 2000.



Aux heures de pointes d'utilisation du site, le site ralentit puis devient
inutilisable, nous sommes alors obligé de recycler le pool d'application


du
site pour qu'il refonctionne. Comme cette manipulation est nécessaire de
plus en plus souvent, nous avons décidé d'opérer des changements


physiques.

Toutefois, il faut savoir que la configuration réalisée sur IIS n'est pas
très évoluée et aucune optimisation particulière n'a été effectuée. IIS


peut
il être optimisé pour mieux tenir la charge?



Dans le cas où il faille intervenir physiquement sur notre architecture


nous
avons pensé séparer nos flux. Nous sommes une administration et nous avons
des bornes internet dans nos locaux qui accèdent aussi au site et enfin le
site propose aussi des outils de gestion réservés aux administratifs. Nous
avons donc pensé monter 3 serveurs chacun pour une catégorie d'utilisateur


:

a.. Internautes
b.. Bornes internet locales
c.. Agents administratifs
Mais il y a un inconvénient à cela, le site utilise un répertoire dans
lequel sont stockés les fichiers autres que asp et html, c'est à dire les
images etc. Ce répertoire doit être tenu à jours entre les différentes
versions du site.



Donc deux solutions :

a.. soit nous centralisons tous les fichiers du site html compris (sur


un
serveur de fichier) et les serveurs web ont un répertoire virtuel


pointant
sur le partage du serveur de fichier. Ce qui a pour avantage de regrouper
tous les fichiers à un seul endroit. Une modification serait alors
immédiatement impactée sur les trois sites (puisqu'ils publiraient le meme
répertoire). Mais l'inconvénient serait d'avoir un flux énorme entre les
serveurs web et le serveur de fichier. Est ce une solution envisageable?
a.. soit nous synchronisons les différentes instances du site. Dans ce


cas
les flux sont réellement séparés mais la maintenance en est que plus
complexe.
On a essayé la solution 1 mais cela retourne erreur http 500 lorsque l'on
essai d'accéder au site.



Existe-il un moyen de diagnostiquer le problème? Puis qu'il peut venir


soit
:

a.. Du serveur ISA qui ne tient plus la charge
b.. Du serveur web qui ne tient plus la charge
c.. Du serveur sql qui ne tient plus la charge
Y'a t il un moyen d'optimiser Windows ou IIS 6.0 pour qu'il tienne mieux


la
charge?

L'une des 2 solutions est elle bonne? ou existe-t-il un 3ième solution?



Voila par avance merci.








Avatar
Christophe Lauer [MS]
Bonjour,

Davy HUBERT wrote:
Mon entreprise publie un site web qui a vu sa fréquentation augmentée
de manière considérable.


(...)
Aux heures de pointes d'utilisation du site, le site ralentit puis
devient inutilisable, nous sommes alors obligé de recycler le pool
d'application du site pour qu'il refonctionne. Comme cette
manipulation est nécessaire de plus en plus souvent, nous avons
décidé d'opérer des changements physiques.



Quelle est la technologie utilisée pour développer ce site : est-ce de l'ASP
3.0 "classique", ou bien de l'ASP.NET faisant appel à des composants ou
bibliothèques externes en code natif non managé, ou bien une application
ASP.NET "pûre" ?

Devoir recourrir à un recyclage de l'App Pool me semble indiquer un soucis
sous-jacent important...

Toutefois, il faut savoir que la configuration réalisée sur IIS n'est
pas très évoluée et aucune optimisation particulière n'a été
effectuée. IIS peut il être optimisé pour mieux tenir la charge?



Oui, effectivement, il existe de nombreux paramètre et possibilités de
configurer IIS 6.0, surtout à partir du moment ou votre machine est
multi-processeurs (WebGarden, ...)

Dans le cas où il faille intervenir physiquement sur notre
architecture nous avons pensé séparer nos flux. Nous sommes une
administration et nous avons des bornes internet dans nos locaux qui
accèdent aussi au site et enfin le site propose aussi des outils de
gestion réservés aux administratifs. Nous avons donc pensé monter 3
serveurs chacun pour une catégorie d'utilisateur :



Vous comprendrez qu'il nous est quasiment impossible de vous donner une
réponse avec si peu d'éléments. Il faudrait envisager au mieux une mission
d'audit de votre configuration et de conseil (De nombreux Partenaires
Microsoft, ou bien même Microsoft Services peuvent traiter ce type de
besoin). Le but étant - avant d'envisager une quelconque modification à
l'architecture matérielle ou à la configuration - d'identifier avec
certitude et précision la ou les cause(s) de ces dégradations de
performances.

Par ailleurs, le site MSDN comporte de nombreux documents sur le sujet de
l'optimisation des applications ASP.NET, et de IIS 6.0 sur Windows 2003. Je
vous invite à vous reporter à cette littérature afin de faire les premières
vérifications (voir la check-list suivante) puis à observer les Compteurs de
Performance de vos différents serveurs afin de caractériser la cause de ces
ralentissements.

http://msdn.microsoft.com/asp.net/using/understanding/perf/default.aspx?pull=/library/en-us/dnpag/html/scalenetcheck03.asp
http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/monitor_perf.asp
http://msdn.microsoft.com/asp.net/using/understanding/perf/default.aspx

Cdt,

--
Christophe Lauer
Relations Techniques Editeurs de Logiciels
Division Développeurs et Plateforme d'Entreprise - Microsoft France
http://www.microsoft.com/france/msdn/

This posting is provided "AS IS" with no warranties, and confers no
rights.