2009-09-16 22 views
9

Qual è la penalità relativa alle prestazioni generali per l'esecuzione di Session State Server anziché InProc? È significativo? Capisco che è possibile riavviare w3wp con il server di stato e mantenere tutto lo stato della sessione - è l'unico vantaggio rispetto a InProc?Sessione stato server ASP.NET e sessione InProc

risposta

10

Dipende dai piani di implementazione: su un singolo server, la penalità è piccola, ma il vantaggio è altrettanto limitato: lo stato della sessione sopravvive al riciclo del processo (come detto) ma è tutto. Avrai alcuni marshalling cross-process con la modalità StateServer, quindi aspettati un po 'di carico aggiuntivo della CPU, niente di troppo impressionante.

In una Web farm/installazione bilanciata del carico InProc non funzionerà, a meno che non sia possibile configurare sessioni adesive/affinità server. Presta attenzione al fatto che il nodo StateServer stesso può diventare un singolo punto di errore, quindi assicurati di compensarlo. Detto questo, la latenza di uno StateServer è in generale molto meno (= migliore) rispetto a quando si utilizza la modalità SQLServer.

Assicurarsi che il codice/il sito gestisca correttamente lo stato di perdita, indipendentemente da dove si memorizzano i dati.

0

Se si dispone di un'impostazione di bilanciamento del carico (senza l'uso di sessioni adesive) non è possibile utilizzare InProc poiché (in base all'impostazione del bilanciamento del carico, ovviamente) è possibile passare da un nodo all'altro.

I ricicli del processo di lavoro (ma che è ovviamente lo stesso del riavvio di w3wp) causeranno anche il blocco della sessione quando è InProc.