Grüße!ASP.NET Speicherauslastung in II ist FAR größer als in DevEnv. Ist das normal?
Ich habe eine ASP.NET-Anwendung, die Daten von einer Handvoll externer Seiten scrapt, analysiert die relevanten Bits und zeigt sie in einer Tabelle an. Die insgesamt abgerufenen Daten sind 3-4 MB und die resultierende Seite ist ungefähr 1 MB. Ich verwende synchrone WebRequest GetResponse für den Abruf, aber das gleiche Problem existierte mit einem asynchronen BeginGetResponse/EndGetResponse-Prozess. Es gibt keinen Datenbankzugriff, keinen Sitzungsspeicher, keine Zwischenspeicherung, sondern eine speicherinterne Liste von etwa 100 Objekten (insgesamt 1 MB Daten), plus eine gute Menge AJAX (AjaxControlToolkit). Dieses Problem tritt bei der allerersten Ausführung der App auf, selbst wenn ich IIS neu gestartet habe.
Das Problem:
Wenn ich die App auf meinem dev Computer ausgeführt werden, begeht die maximale Ladung beträgt ca. 1,5 GB. Der größte Benutzer, gemessen an der VM-Größe des Task-Managers, ist WebDev.WebServer.exe (600 MB). Die App läuft perfekt.
Wenn ich es auf meinem Rent-a-Server (IIS 7,5, 1 GB RAM) ausführen, ist die maximale Commit-Gebühr über 3,8 GB. Der größte Benutzer ist w3wp.exe mit 2,7 GB. IIS wird angehalten und spuckt eine zeitgesteuerte Fehlerseite aus. Angesichts meines begrenzten Serverbudgets und der Hoffnung, mehrere gleichzeitige Benutzer zu haben, bin ich irgendwie in Panik.
Ist das normal? Wenn ich den Server-RAM auf 4 GB stoße, reicht das? Benötigen mehrere Benutzer noch mehr Speicher? Könnte der Schuldige AJAX oder die Liste der Objekte sein?
Vielen Dank für Ihre Informationen.
SEHR INTERESSANT ... Ich habe IIS 5.1 (die Version, die mit XP kommt) eingerichtet und die App über mein Netzwerk ausgeführt. Die maximale Commit-Gebühr auf dem 5.1-Server betrug 1,3 GB - noch weniger als beim WebDev.WebServer. Bei nachfolgenden Läufen ist die Speicherbelegung tatsächlich gesunken. Ist IIS 7.5 so viel Speicher? – Tom
Sie benötigen eine Staging-Umgebung, die mit Ihrer Implementierungsumgebung identisch ist. Testen auf XP (IIS 5) ist absolut nichts wie Testen auf IIS 7 oder IIS 6. –
Das macht Sinn. Da meine Site noch nicht live ist, verwende ich den realen Server als Staging-Umgebung.Würde es einen Unterschied machen, wenn ich hier auf meiner Entwicklungsseite eine identische Umgebung einrichten würde? Ich würde denken, dass es die gleichen Ergebnisse haben würde ... – Tom