32 bits ou 64 bits pour les sites Web Windows Azure?
13
Les sites Web Windows Azure offrent deux options 32 bits ou 64 bits. Les nouveaux sites sont livrés avec 32 bits par défaut. Pour une configuration de serveur, cela semble un peu étrange car, AFAIK, la grande majorité des serveurs Web sont en configuration 64 bits depuis des années. Compte tenu des cas d'utilisation habituels pour les sites ASP.NET, y a-t-il des raisons de privilégier les 32 bits sur les 64 bits?
IIS + .NET sur des roches x64 et peut prendre en charge de très grandes charges de travail. Si vous effectuez des tests de charge, vous constaterez que les serveurs x64 avec suffisamment de CPU et de RAM surpassent x86 par une mesure saine.
Si votre charge de travail est petite et / ou que vous allez équilibrer la charge d'un certain nombre de serveurs, vous trouverez peut-être que x86 est correct. (Je suis un grand partisan de l'utilisation des plus petites instances possibles pour la charge de travail - une grande partie de l'informatique jette du métal sur le problème, et c'est du gaspillage. X86 est beau. Malheureusement, il devient plus difficile d'obtenir des instances x86.)
Dans notre cas, nous équilibrons la charge de plusieurs serveurs x64. Cependant, pendant les opérations de déploiement, la totalité ou la majeure partie de la charge peut être dirigée vers un seul serveur. Dans notre cas, si ce serveur était x86, il serait stressé et très lent. Comme il est x64, il peut gérer la charge et les utilisateurs ne le remarquent pas.
J'ai récemment appris que le garbage collector verrouille tous les threads pendant le processus, provoquant parfois une latence plus élevée. Une fois que vous avez activé 64 bits, le garbage collector agira moins fréquemment, améliorant ainsi les performances de votre application.
Tom
3
La réponse est - c'est compliqué. Ce n'est simple que si votre application nécessite l'accès à de nombreux Go de RAM (la plupart des applications ne le font pas), alors vous devez avoir 64 bits.
Sinon, seul le test de votre application spécifique sous 32 bits et 64 bits peut vous dire avec certitude, puis cela dépend de ce qui est le plus important pour vous, de l'empreinte mémoire ou des performances du processeur. N'oubliez pas que si vous manquez de mémoire, votre application se paginera sur le disque et vous dira au revoir (de manière huuuuuge) à tout gain de performance que vous pourriez avoir obtenu en passant à 64 bits, ou votre mise à l'échelle automatique démarrera et vous être facturé plus d'argent par Azure pour les instances de serveur ajoutées, ou vous commencerez à obtenir des erreurs OutOfMemory qui sont terminées pour votre application.
Passez à 32 bits, sauf si vous avez besoin d'un espace d'adressage de 64 bits, ce qui est rare pour un site Web normal.
La raison en est simplement que les sites Web n'ont normalement pas besoin de l'espace d'adressage et que 32 programmes bi s'exécutent plus rapidement.
Maintenant, vous dites:
la grande majorité des serveurs Web sont en configuration 64 bits depuis des années
Oui mais:
La configuration par défaut d'un pool d'applications IIS consiste à démarrer en mode 32 bits - pour des raisons de compatibilité et de performances. Le conseil de Microsoft pour la configuration IIS est d'utiliser des pools d'applications 32 bits sur un serveur 64 bits.
Vous pouvez être sûr qu'il fonctionnera sur un serveur 64 bits, car il n'y a aucune offre de production 32 bits actuelle de Microsoft. Mais à moins que vous n'ayez besoin de plus grandes quantités de RAM, l'impact sur les performances n'en vaut pas la peine.
"La configuration par défaut pour un pool d'applications IIS consiste à démarrer en mode 32 bits" Cela n'a pas été vrai depuis un certain temps. IIS est toujours x64 sur le système d'exploitation du serveur x64 et nécessite un piratage pour créer 32 bits.
Jonesome Reinstate Monica
2
"Les programmes 32 bits s'exécutent plus rapidement." ce n'est pas vrai à l'échelle mondiale.
La réponse est - c'est compliqué. Ce n'est simple que si votre application nécessite l'accès à de nombreux Go de RAM (la plupart des applications ne le font pas), alors vous devez avoir 64 bits.
Sinon, seul le test de votre application spécifique sous 32 bits et 64 bits peut vous dire avec certitude, puis cela dépend de ce qui est le plus important pour vous, de l'empreinte mémoire ou des performances du processeur. N'oubliez pas que si vous manquez de mémoire, votre application se paginera sur le disque et vous dira au revoir (de manière huuuuuge) à tout gain de performance que vous pourriez avoir obtenu en passant à 64 bits, ou votre mise à l'échelle automatique démarrera et vous être facturé plus d'argent par Azure pour les instances de serveur ajoutées, ou vous commencerez à obtenir des erreurs OutOfMemory qui sont terminées pour votre application.
Voir également: https://www.hanselman.com/blog/PennyPinchingInTheCloudYourWebAppDoesntNeed64bit.aspx
la source
Passez à 32 bits, sauf si vous avez besoin d'un espace d'adressage de 64 bits, ce qui est rare pour un site Web normal.
La raison en est simplement que les sites Web n'ont normalement pas besoin de l'espace d'adressage et que 32 programmes bi s'exécutent plus rapidement.
Maintenant, vous dites:
Oui mais:
La configuration par défaut d'un pool d'applications IIS consiste à démarrer en mode 32 bits - pour des raisons de compatibilité et de performances. Le conseil de Microsoft pour la configuration IIS est d'utiliser des pools d'applications 32 bits sur un serveur 64 bits.
Vérifier:
http://www.iis.net/learn/web-hosting/web-server-for-shared-hosting/32-bit-mode-worker-processes
pour la déclaration officielle.
Vous pouvez être sûr qu'il fonctionnera sur un serveur 64 bits, car il n'y a aucune offre de production 32 bits actuelle de Microsoft. Mais à moins que vous n'ayez besoin de plus grandes quantités de RAM, l'impact sur les performances n'en vaut pas la peine.
la source