ASP.NET dell'utilizzo della memoria in IIS è di gran lunga superiore a devenv. È normale?

StackOverflow https://stackoverflow.com/questions/4600773

Domanda

Un saluto!

Ho un'applicazione ASP.NET che raschia dati da una manciata di pagine esterne, analizza i bit corrispondenti e li visualizza in una tabella. Dati totali recuperati sono 3-4MB e la pagina risultante è di circa 1 MB. Sto usando sincrono WebRequest GetResponse per il recupero, ma lo stesso problema esiste con un processo BeginGetResponse / EndGetResponse asincrono. Non v'è alcun accesso al database, senza memorizzazione delle sessioni, senza memorizzazione nella cache, ma un elenco in memoria di circa 100 oggetti (1MB totale dei dati), oltre a una buona quantità di AJAX (AjaxControlToolkit). Questo sembra emettere sul molto prima esecuzione dell'applicazione, anche se ho rinnovate IIS.

Il problema:

Quando eseguo l'applicazione sul mio computer dev, il massimo commettere carica è di circa 1.5GB. Il più grande utente, misurata da VM Dimensioni del Task Manager, è WebDev.WebServer.exe (600 MB). L'applicazione funziona perfettamente.

Quando eseguo sul mio rent-a-server (IIS 7.5, 1GB di RAM), il massimo commettere carica è finita 3.8GB. Il più grande utente è w3wp.exe a 2.7GB. IIS si blocca e sputa fuori una pagina di errore scaduta a. Dato il mio budget di server limitato e la speranza di avere più utenti simultanei, Sono un po 'in preda al panico.

E 'normale? Se mi imbatto server RAM fino a 4 GB, sarà sufficiente? Saranno più utenti richiedono sempre più memoria? Potrebbe essere il colpevole AJAX o la lista degli oggetti?

Grazie per qualsiasi comprensione è possibile fornire.

È stato utile?

Soluzione 3

Bene, dopo un lavoro duro, ho identificato il colpevole: la nostra vecchia nemesi il ciclo infinito. Naturalmente, se l'ambiente di sviluppo aveva gettato un'eccezione, avrei preso e asportato il problema - ma non ha

.

Direi che la lezione imparata qui è capire che diverse versioni di IIS e devenv rispondono ad errori in modo diverso e che dobbiamo testare l'applicazione nella stessa configurazione in cui verrà distribuito.

Grazie a tutti per il suggerimento.

Altri suggerimenti

Hai provato l'esecuzione di questo nel vostro ambiente dev in IIS 7.5?
Assicurarsi che il debug = "false", non "vero" nel web.config

Credo che è necessario scavare alcuni strumenti di debug e catturare un dump processo di lavoro del server di produzione, non sarà in grado di diagnosticare correttamente questo problema con un solo PerfMon e Task Manager.

ho postato questa risposta su Stack Overflow un po 'indietro, che dovrebbe iniziare:

  

CLR fuori di eccezioni di memoria

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top