Les jardins Web… sont-ils bons ou mauvais ou quoi?

28

Existe-t-il des inconvénients à donner aux pools d'applications plusieurs processus de travail dans IIS? Ils semblent vraiment faciles à activer et (presque) tout ce que j'ai lu semble suggérer qu'ils sont bons ... alors pourquoi IIS ne donne-t-il pas à chaque App Pool 10+ Worker Processes? Il doit y avoir des effets néfastes, non?

Nai
la source

Réponses:

36

Tu as raison d'être méfiant. Les jardins Web n'ayant aucun inconvénient sont un mythe énorme, ils peuvent vous causer des problèmes sans fin, mais beaucoup de gens ne savent même pas quand ils doivent être utilisés.

Selon Chris Adams (de l'équipe IIS), il n'y a qu'une seule raison pour laquelle vous voudriez utiliser un jardin Web: pour donner aux applications, qui ne sont pas liées au processeur mais exécutent de longues requêtes, la possibilité de s'adapter et de ne pas utiliser toutes threads disponibles dans le processus de travail. Il y a beaucoup de raisons pour lesquelles ils peuvent être mauvais, cependant, c'est une idée fausse commune qu'il n'y a pas d'inconvénient.

Ils augmentent les frais généraux du système (ils ne partagent pas le cache), ils ne partagent pas les sessions (l'utilisateur peut perdre sa session s'il passe à un autre processus), InProc peut être gâché. En bref, ils sont en fait, le plus souvent, beaucoup de problèmes, et vous ne devriez pas en utiliser un sans bonne raison.

Lisez l'explication complète de Chris: http://blogs.iis.net/chrisad/archive/2006/07/14/1342059.aspx

Pour en savoir plus: http://weblogs.asp.net/owscott/why-you-shouldn-t-use-web-gardens-in-iis-week-24

Django Reinhardt
la source
5
Bien dit, tout comme le poste de Chris. Les jardins Web ne sont presque jamais nécessaires. Un seul processus par serveur est tout ce qui est requis dans 99,5% du temps. J'ai eu l'occasion de tester des jardins Web sur des serveurs à forte charge qui ne fonctionnaient pas bien et nous ne les avons jamais activés à la fin. Nous avons toujours trouvé de meilleures solutions. Ce n'est que pour les tâches à faible consommation de ressources qu'ils aident. Leur utilisation présente une plus grande empreinte mémoire et des problèmes de continuité de session. Bien que cela puisse être résolu, il est rarement nécessaire.
Scott Forsyth - MVP
Il est effrayant de voir combien de textes ne mentionnent jamais leurs inconvénients - même le propre site Web de Microsoft a des pages comme ça.
Django Reinhardt
7
Tout va bien pour ne pas considérer les jardins Web dans la plupart des cas .. MAIS des problèmes de SESSION? Je veux dire seulement si vous êtes réglé sur InProc. Maintenant, vous n'utiliseriez pas InProc en production, non?!
Andrei Rînea
@AndreiRinea Incroyable comme peu de gens savent qu'il existe des alternatives à InProc ..
Gats
1
Autant que c'est certainement la meilleure réponse, en ce moment la seule information que je peux trouver sur quand utiliser un jardin Web est la citation exacte dans cette réponse (c'est-à-dire, "... les applications, qui ne sont pas liées au CPU ... "). Le problème pour moi, c'est que je ne sais pas ce que signifient certains de ces termes. Cela signifie peut-être que je ne devrais pas jouer avec, mais je suis un administrateur système, pas un développeur, et parfois les développeurs ne savent pas ces choses non plus. Donc, une explication plus complète de ce que signifie cette citation serait bien.
Todd Wilcox