Los procesos de trabajo son una forma de segmentar la ejecución de su sitio web a través de múltiples ejecutables. Hace esto por un par de razones, una si uno de los trabajadores es golpeado por problemas de tiempo de ejecución que no derriba a los demás. Por ejemplo, si aparece una solicitud html que causa que el proceso se ejecute en nada, entonces solo las otras solicitudes que están siendo manejadas por ese procesador de un trabajador mueren. Otro ejemplo es que una solicitud podría causar bloqueo contra los otros hilos manejados por el mismo trabajador.
En cuanto a la cantidad que necesita, realice algunas pruebas de carga. Pulse la aplicación con fuerza y vea qué sucede con solo una. Luego agréguele algo más y golpéelo nuevamente. En algún punto, llegará a un punto de saturar verdaderamente la red de las máquinas, el disco, la CPU y el ram. Es entonces cuando sabes que tienes el equilibrio correcto.
Por cierto, puede controlar el número de subprocesos utilizados por proceso de trabajo a través del archivo machine.config. Creo que la clave es maxWorkerThreads.
Ahora, tenga cuidado, si utiliza la sesión, el estado de la sesión no se comparte entre los procesos de trabajo. En general, recomiendo evitar la sesión de todos modos, pero es algo a considerar.
Para todos los efectos, puede considerar cada proceso de trabajo como su propio servidor web. Excepto que se están ejecutando en la misma caja.
No estaba seguro de si esto sería más apropiado aquí o en ServerFault, avíseme si hice una elección incorrecta y la moveré. –
Adelante y pregunte en ambos lugares. Creo que tu pregunta es relevante aquí. Las características específicas de la implementación de ASP.Net a menudo caen en el área de experiencia del desarrollador, especialmente en lo que respecta a la optimización de la aplicación. – DOK
Estoy de acuerdo con DOK. Ambos lugares son apropiados. Los de Dev son a menudo los que tienen que decirle a los chicos de la red cómo configurar el servidor. Debido a esto, necesitan tener esta información. – NotMe