Die Windows Azure-Websites bieten zwei 32-Bit- oder 64-Bit-Optionen. Neue Websites werden standardmäßig mit 32 Bit geliefert. Bei einer Serverkonfiguration fühlt es sich etwas seltsam an, weil, AFAIK, die große Mehrheit der Webserver seit Jahren in 64-Bit-Konfiguration ist. Gibt es in Anbetracht der üblichen Anwendungsfälle für ASP.NET-Sites Gründe, 32 Bit gegenüber 64 Bit vorzuziehen?
IIS + .NET auf x64 rockt und kann sehr große Workloads unterstützen. Wenn Sie Auslastungstests durchführen, werden Sie feststellen, dass x64-Server mit ausreichend CPU und RAM x86 um ein gutes Maß übertreffen.
Wenn Ihre Arbeitslast gering ist und / oder Sie eine Reihe von Servern ausgleichen möchten, ist x86 möglicherweise in Ordnung. (Ich bin fest davon überzeugt, möglichst kleine Instanzen für die Workload zu verwenden - so viel IT wirft Metall auf das Problem und es ist verschwenderisch. X86 ist wunderschön. Leider wird es immer schwieriger, x86-Instanzen zu erhalten.)
In unserem Fall wird ein Lastenausgleich für mehrere x64-Server durchgeführt. Während der Bereitstellungsvorgänge kann die gesamte Last oder ein Großteil der Last auf einen einzelnen Server geleitet werden. In unserem Fall wäre dieser Server, wenn er x86 wäre, überlastet und sehr langsam. Da es x64 ist, kann es mit der Last umgehen und die Benutzer bemerken es nicht.
Ich habe kürzlich erfahren, dass der Garbage Collector während des Vorgangs alle Threads sperrt, was zeitweise zu einer höheren Latenz führt. Sobald Sie die 64-Bit-Version aktivieren, wird der Garbage Collector weniger häufig ausgeführt, wodurch die Leistung Ihrer App verbessert wird.
Tom
3
Die Antwort ist - es ist kompliziert. Es ist nur einfach, wenn Ihre Anwendung Zugriff auf viele GB RAM erfordert (die meisten Apps nicht), dann müssen Sie 64-Bit haben.
Andernfalls können Sie nur durch Testen Ihrer spezifischen App unter 32-Bit und 64-Bit feststellen, was für Sie am wichtigsten ist: Speicherbedarf oder CPU-Leistung. Denken Sie daran, wenn Sie genügend Speicherplatz frei heraus dann die App entweder Seite auf der Festplatte und sagte bye-bye (in einer huuuuuge Art und Weise) zu einer Leistungssteigerung Sie können von der Umstellung auf 64 - Bit bekommen haben, oder Ihre automatische Skalierung in kicken und Sie werden Wenn Sie für die hinzugefügten Serverinstanzen mehr Geld von Azure verlangen, erhalten Sie möglicherweise OutOfMemory-Fehler, die das Spiel für Ihre App beenden.
Gehen Sie auf 32-Bit, es sei denn, Sie benötigen einen 64-Bit-Adressraum - was für eine normale Website selten ist.
Der Grund ist einfach, dass Websites normalerweise keinen Adressraum benötigen und 32 Bi-Programme schneller ausgeführt werden.
Jetzt sagst du:
Die überwiegende Mehrheit der Webserver befindet sich seit Jahren in der 64-Bit-Konfiguration
Ja aber:
Die Standardeinstellung für einen IIS-Anwendungspool ist aus Kompatibilitäts- und Leistungsgründen der Start im 32-Bit-Modus. Microsoft rät zur IIS-Konfiguration, 32-Bit-Anwendungspools auf einem 64-Bit-Server zu verwenden.
Sie können sicher sein, dass es auf einem 64-Bit-Server ausgeführt wird, da es kein aktuelles 32-Bit-Produktionsangebot von Microsoft gibt. Aber wenn Sie nicht mehr RAM benötigen, lohnt sich die Leistung nicht.
"Die Standardeinstellung für einen IIS-Anwendungspool ist das Starten im 32-Bit-Modus." Dies ist seit einiger Zeit nicht mehr der Fall. IIS ist unter x64-Serverbetriebssystemen immer x64 und erfordert Hacking, um 32-Bit zu erstellen.
Jonesome Reinstate Monica
1
"32-Bit-Programme laufen schneller." das ist nicht global wahr.
Die Antwort ist - es ist kompliziert. Es ist nur einfach, wenn Ihre Anwendung Zugriff auf viele GB RAM erfordert (die meisten Apps nicht), dann müssen Sie 64-Bit haben.
Andernfalls können Sie nur durch Testen Ihrer spezifischen App unter 32-Bit und 64-Bit feststellen, was für Sie am wichtigsten ist: Speicherbedarf oder CPU-Leistung. Denken Sie daran, wenn Sie genügend Speicherplatz frei heraus dann die App entweder Seite auf der Festplatte und sagte bye-bye (in einer huuuuuge Art und Weise) zu einer Leistungssteigerung Sie können von der Umstellung auf 64 - Bit bekommen haben, oder Ihre automatische Skalierung in kicken und Sie werden Wenn Sie für die hinzugefügten Serverinstanzen mehr Geld von Azure verlangen, erhalten Sie möglicherweise OutOfMemory-Fehler, die das Spiel für Ihre App beenden.
Siehe auch: https://www.hanselman.com/blog/PennyPinchingInTheCloudYourWebAppDoesntNeed64bit.aspx
quelle
Gehen Sie auf 32-Bit, es sei denn, Sie benötigen einen 64-Bit-Adressraum - was für eine normale Website selten ist.
Der Grund ist einfach, dass Websites normalerweise keinen Adressraum benötigen und 32 Bi-Programme schneller ausgeführt werden.
Jetzt sagst du:
Ja aber:
Die Standardeinstellung für einen IIS-Anwendungspool ist aus Kompatibilitäts- und Leistungsgründen der Start im 32-Bit-Modus. Microsoft rät zur IIS-Konfiguration, 32-Bit-Anwendungspools auf einem 64-Bit-Server zu verwenden.
Prüfen:
http://www.iis.net/learn/web-hosting/web-server-for-shared-hosting/32-bit-mode-worker-processes
für die offizielle Erklärung.
Sie können sicher sein, dass es auf einem 64-Bit-Server ausgeführt wird, da es kein aktuelles 32-Bit-Produktionsangebot von Microsoft gibt. Aber wenn Sie nicht mehr RAM benötigen, lohnt sich die Leistung nicht.
quelle