Gestione dei Threads in ASP.NET

di Cristian Civera, in .NET 2.0,

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.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese