ASP.NET dell'utilizzo della memoria in IIS è di gran lunga superiore a devenv. È normale?
-
25-09-2019 - |
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.
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: