Devo fare una correzione riguardante a ciò che ho detto nella mia sessione tenuta durante i community days.
Parlando del worker process di ASP.NET ho spiegato come il motore gestisce le richieste con una lista di 20 thread già pronti. Nel dirla mi è venuto un dubbio e sono andato controllare. In ASP.NET 2 i threads nella impostazione di default, sono 100 per CPU così come i threads IO.
Questa impostazione è modificabile nel machine.config attraverso la sezione processModel. Normalmente è presente un unico attributo autoConfig, ma è possibile impostare manualmente maxWorkerThreads e maxIoThreads.
Se non ci credete, chiamate System.Threading.ThreadPool.GetMaxThreads e vedrete quanti threads sono stati allocati dal motore di ASP.NET.
Questa modifica è importante. Aumentare o diminuire il numero dei threads può incidere sulle performance delle applicazioni. Un numero troppo basso può limitare il numero delle richieste che l'applicazione può soddisfare, un numero troppo alto può sprecare cicli di CPU per il context switch tra un thread e l'altro e peggiorare ancor di più il worker process.
C'è da considerare comunque che nelle applicazioni web alcune richieste restano in attesa, magari perché invocano webservices o aspettano una risposta dal database così da non pesare sul processo di ASP.NET, ma comunque impegnando un thread.
Chieso scusa per non essere stato preciso.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Silverlight e versioni CLR, il 28 agosto 2007 alle 13:49
- Intercettare il reciclo di un'applicazione ASP.NET, il 25 settembre 2006 alle 22:42
- User e custom controls, WebParts, il 15 giugno 2006 alle 20:52
- Capitolo 10 tutto su ObjectDataSource, il 6 giugno 2006 alle 23:03
- ASP.NET 2.0 per tutti: capitolo 9 pronto, il 28 maggio 2006 alle 22:55