2009-08-17 13 views
4

J'ai un site Web ASP.Net sur IIS7 et je prévois d'augmenter le MaxProcesses pour correspondre au nombre de cœurs sur le serveur (4 cœurs, 64 bits Windows Server 2008). D'après ce que j'ai lu, si j'augmente le MaxProcesses pour créer un jardin web, je dois définir un serveur d'état hors processus, donc je prévois d'utiliser le service ASPState pour partager des sessions entre processus de travail.ASP.Net augmenter MaxProcesses (web garden) en utilisant le serveur d'état et la mise en cache

Mais il y a quelque chose qui n'est pas clair pour moi, est-ce que Caching est aussi partagé? Ou dois-je définir un nouveau fournisseur personnalisé pour le cache?

Répondre

4

Le cache en cours de traitement n'est jamais partagé dans un jardin Web.

Mais voici la chose réelle ... Je remets en question les motivations derrière ce que vous faites. Si l'objet doit utiliser vos cœurs plus efficacement, vous pouvez simplement augmenter le nombre de threads de requête et/ou de travail que vous exécutez votre application ASP.NET. L'exécution de plusieurs processus w3wp n'est pas forcément l'option que vous souhaitez. Si vous avez une ressource contrainte, comme un ancien objet COM in-process qui échoue mal avec les threads, alors je peux voir comment vous pourriez mieux évoluer avec plusieurs processus. Mais à moins que vous sachiez vraiment ce que vous faites et pourquoi, reculez doucement de ce paramètre et laissez-le à 1. ;-)

+0

Je considère l'augmentation du nombre de processus comme l'option naturelle pour améliorer les performances sur la machine et Comme je prévois à long terme pour s'étendre à plusieurs serveurs, il sera plus facile de passer d'un jardin web et pour ce cas, je considérais le fournisseur memcached. Pour être tout à fait honnête, je ne connaissais pas l'option d'augmenter le nombre de threads par processus de travail, je pensais qu'il était géré comme le niveau du processus. – rjlopes

+0

http://blogs.msdn.com/b/david.wang/archive/2006/03/14/thoughts-on-application-pools-running-out-of-threads.aspx Si vous avez du code qui bloque , vous * pouvez * envisager d'augmenter la concurrence en ajoutant des threads ou Web Garden ... mais se rendre compte que cela donne seulement l'apparence à court terme de la disponibilité au détriment de la performance brute diminuée, ne résout pas le code non-performant, et seulement retarde l'inévitable. –

3

La mise en mémoire cache n'est pas partagée. Le jardin web crée plusieurs processus "w3wp". Chaque processus aura son propre cache.

3

Si vous souhaitez partager le cache, utilisez quelque chose comme MemCached Win32 (avec le client cache Enyim) ou utilisez le nouveau produit MS Velocity. De cette façon, une fois que vous aurez dépassé un serveur, vous serez déjà configuré de manière architecturale pour le gérer.