Wir sind derzeit dabei, unseren 32-Bit-Produktionsserver auf einen leistungsstärkeren 64-Bit-Server zu aktualisieren, während wir auf ASP.NET 4 aktualisieren. Nach einigen Tests mit geringer Last scheinen wir jedoch einen Leistungsabfall zu haben!
Ich habe einen einfachen Lasttest mit einer konstanten Last von 20 Benutzern erstellt, der einige einfache Anwendungsfälle ausführt, und die Ergebnisse verglichen:
Wie Sie sehen können, ist die Konfiguration mit der höchsten Leistung der vorhandene 32-Bit-Server mit ASP.NET 2.0.
Wenn Sie IIS im 32-Bit-Modus auf dem 64-Bit-Computer ausführen, ist dies ziemlich vergleichbar mit dem vorhandenen 32-Bit-Server. Wenn Sie jedoch IIS im 64-Bit-Modus auf dem 64-Bit-Server ausführen, ist die Leistung erheblich schlechter. Ich bin mir nicht sicher, warum das so ist, da der neue Server besser ist.
Aus irgendeinem Grund gibt es jedes Mal, wenn ich den Test mit IIS in 64-Bit durchführe, am Anfang eine große Spitze, die sich dann ausgleicht, aber immer noch eine höhere Antwortzeit als 32-Bit aufweist. Die Spitze verschwindet, wenn ich IIS im 32-Bit-Modus ausführe.
Beachten Sie, dass der App-Pool / die App-App zwischen den Tests nicht neu gestartet wird, die Spitze jedoch konsistent vorhanden ist und die Antwort höher ist als bei anderen Konfigurationen.
Also - meine Frage ist: Hat jemand eine Idee, warum das so ist? Gibt es irgendwelche Konfigurationseinstellungen, die ich einstellen muss? Hat jemand einige Hinweise, wie ich eingrenzen kann, was den Unterschied verursacht?
Aktueller Produktionsserver: Win Server 2003 - 32bit - IIS6
Neuer Server: Win Server 2003 R2 - 64bit - IIS6
quelle
Wir haben dies auf unserem Windows 2K3-Server versucht und das Gleiche festgestellt. Ich war zu diesem Zeitpunkt nicht hier, aber es hat etwas damit zu tun, wie MS 64Bit .Net in 2K3 implementiert hat (nicht sicher, was, aber die Person, die mir gesagt hat, ist ein MVP Ich werde sein Wort darauf nehmen.)
Und nur um Sie wissen zu lassen, dass Sie bei einem Wechsel zu Win2K8 möglicherweise dasselbe sehen wie bei unseren Servern hier und dasselbe Leistungsproblem haben. Nach dem, was mir gesagt wurde, und ein wenig Lesen, um 64Bit .Net zu nutzen, wird die Verwendung integrierter Pipelines empfohlen ( http://msdn.microsoft.com/en-us/magazine/cc135973.aspx ).
Entschuldigung, dies beantwortet Ihre Frage nicht, aber ich dachte, ich würde Sie wissen lassen, dass Sie nicht der einzige sind, der dieses Problem sieht.
quelle