Pregunta

Mirando el elemento processmodel en Web.Config hay dos atributos.

maxWorkerThreads="25" 
maxIoThreads="25"

¿Cuál es la diferencia entre los subprocesos de trabajo y los subprocesos de E / S?

¿Fue útil?

Solución

Fundamentalmente, no mucho, se trata de cómo ASP.NET e IIS asignan objetos de espera de E / S y administran la contención y la latencia de la comunicación a través de la red y la transferencia de datos.

Los hilos de E / S se reservan como tales porque estarán haciendo E / S (como su nombre lo indica) y es posible que tengan que esperar " durante mucho tiempo " Períodos de tiempo (cientos de milisegundos). También se pueden optimizar y utilizar de manera diferente para aprovechar la funcionalidad del puerto de finalización de E / S en el kernel de Windows. Un único hilo de E / S puede administrar múltiples puertos de finalización para mantener el rendimiento.

Windows tiene muchas capacidades para lidiar con el bloqueo de E / S, mientras que ASP.NET/.NET tiene un concepto simple de " Thread " ;. ASP.NET puede optimizar la E / S usando más de las capacidades de subprocesos no administrados en el sistema operativo. No querría hacer esto todo el tiempo para cada subproceso, ya que pierde muchas de las capacidades que le ofrece .NET, por lo que existe una distinción entre la forma en que se pretende utilizar los subprocesos.

Los subprocesos de trabajo son subprocesos en los que " trabajo " o simplemente el código / procesamiento simple ocurre. Es poco probable que los subprocesos de trabajo bloqueen mucho o esperen en cualquier cosa y que se ejecuten brevemente y, por lo tanto, requieren una programación más agresiva para maximizar la capacidad de procesamiento y el rendimiento.

[Editar]: también encontré este enlace que es particularmente relevante para esta pregunta: http: / /blogs.msdn.com/ericeil/archive/2008/06/20/windows-io-threads-vs-managed-io-threads.aspx

Otros consejos

Sólo para agregar a chadmyers ... Parece que los subprocesos de E / S eran la antigua forma en que ASP.NET atendía las solicitudes,

  

" Las solicitudes en IIS 5.0 son típicamente   servicio a través de hilos de E / S, o hilos   realizando I / O asíncrono porque   Las solicitudes se envían al trabajador.   proceso utilizando escrituras asíncronas a una   tubería nombrada. "

con IIS6.0 esto ha cambiado.

  

" Por lo tanto, todas las solicitudes ahora son atendidas por   hilos de trabajo extraídos de la CLR   grupo de subprocesos y nunca en subprocesos de E / S. "

Fuente: http://msdn.microsoft.com /hi-in/magazine/cc164128(en-us).aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top