Pourquoi les pools d'applications 32 bits sont-ils plus efficaces dans IIS? [fermé]

12

J'ai exécuté des tests de charge avec deux applications Web ASP.NET différentes dans IIS. Les tests sont exécutés avec 5,10,25 et 250 agents utilisateurs. Testé sur une box avec 8 Go de RAM, Windows 7 Ultimate x64. La même boîte exécutant à la fois IIS et le projet de test de charge.

J'ai fait de nombreuses analyses et les données sont très cohérentes. Pour chaque chargement, je vois un «Temps de page moyen (sec)» inférieur et un «Temps de réponse moyen (sec)» inférieur si «Activer les applications 32 bits» est défini sur Vrai dans les pools d'applications. La différence est d'autant plus prononcée que la charge est élevée. À des charges très élevées, les applications Web commencent à générer des erreurs (503) si les pools d'applications sont 64 bits, mais elles peuvent suivre le rythme si elles sont définies sur 32 bits.

Pourquoi les pools d'applications 32 bits sont-ils tellement plus efficaces? Pourquoi la valeur par défaut n'est-elle pas pour les pools d'applications 32 bits?

mhenry1384
la source

Réponses:

16

Les pointeurs de mémoire 64 bits et autres structures de données associées sont deux fois plus volumineux que leurs homologues 32 bits. De plus, un thread de travail 64 bits encourra une pénalité chaque fois qu'il devra accéder à du code ou à des DLL 32 bits lors du changement de mode. (Recherche WoW64 et thunking.)

Le plus grand avantage (mais pas le seul) de l'utilisation de 64 bits est la capacité d'adresser beaucoup plus de mémoire. Si votre pool d'applications n'utilise pas plus de 2 ou 3 gigaoctets de mémoire, et que vous n'avez pas spécifiquement besoin d'exécuter du code 64 bits, alors il n'y a probablement aucune raison impérieuse pour vous de passer en 64 bits. Au fur et à mesure que la technologie progresse, les fabricants de puces créent des registres CPU supplémentaires, en particulier pour les processeurs 64 bits, afin d'améliorer leurs performances, mais en règle générale, il n'y a pas d'augmentation magique des performances uniquement pour l'utilisation de plus de bits. En fait, comme vous venez de le constater, cela peut être pire.

64 bits = Abrams Tank

32 bits = Toyota Prius

L'un peut faire beaucoup plus de travail, mais l'autre peut passer par le service au volant de McDonald's.

Ryan Ries
la source
4
Je déteste faire une piqûre, mais les deux peuvent passer par le service au volant de McDonald's. C'est juste qu'on le fait sans renverser le mur.
HopelessN00b
3
Je déteste faire une piqûre, mais je pense que cela dépendrait fortement de la définition de l'ajustement! Si nous optons pour «être de la bonne taille et de la bonne forme» tel que défini par les spécifications de service au volant de McDonald's, je dirais que non :).
GraemeMiller