I processi di lavoro sono un modo per segmentare l'esecuzione del tuo sito web su più exe. Lo fai per un paio di motivi, uno se uno dei lavoratori viene sbalordito da problemi di runtime che non abbatte gli altri. Ad esempio, se arriva una richiesta html che fa sì che il processo scada nel nulla, vengono uccise solo le altre richieste gestite da quel processore. Un altro esempio è che una richiesta potrebbe causare il blocco contro gli altri thread gestiti dallo stesso worker.
Per quanto ne hai bisogno, esegui dei test di carico. Colpisci l'app con forza e vedi cosa succede con una sola. Quindi aggiungine altro e colpiscilo di nuovo. Ad un certo punto raggiungerai un punto di saturazione della rete, del disco, della CPU e della ram. Questo è quando sai di avere il giusto equilibrio.
Per inciso, è possibile controllare il numero di thread utilizzati per processo di lavoro tramite il file machine.config. Credo che la chiave sia maxWorkerThreads.
Ora, attenzione, se si utilizza la sessione, lo stato della sessione non viene condiviso tra i processi di lavoro. In genere consiglio di evitare comunque la sessione, ma è qualcosa da considerare.
A tutti gli effetti è possibile considerare ogni processo di lavoro come se fosse un proprio server web separato. Tranne che stanno correndo sulla stessa scatola.
Non sapevo se sarebbe stato più appropriato qui o su ServerFault, fammi sapere se ho fatto la scelta sbagliata e la sposterò. –
Vai avanti e chiedi in entrambi i posti. Penso che la tua domanda sia pertinente qui. Le specifiche della distribuzione di ASP.Net ricadono spesso nell'area di competenza dello sviluppatore, in particolare per quanto riguarda l'ottimizzazione delle app. – DOK
Sono d'accordo con DOK. Entrambi i posti sono appropriati. Gli sviluppatori sono spesso quelli che devono dire ai ragazzi della rete come configurare il server. Per questo motivo, hanno bisogno di avere queste informazioni. – NotMe