Сервер состояния сеанса ASP.NET против сеанса InProc
Каковы потери производительности при запуске сервера состояний сеанса вместо InProc? Это важно? Я понимаю, что вы можете перезапустить w3wp с сервера состояний и сохранить все состояния сеанса - это единственное преимущество по сравнению с InProc?
2 ответа
Это зависит от ваших планов развертывания: на одном сервере штраф невелик, но выгода в равной степени ограничена: ваше состояние сеанса переживает повторения процессов (как уже упоминалось), но это все. В режиме StateServer у вас будет перекрестная сортировка, так что ожидайте дополнительную загрузку процессора, ничего особенного.
В веб-ферме / настройке с балансировкой нагрузки InProc не будет работать, если вы не можете настроить привязку липких сессий / сервера. Помните о том, что сам узел StateServer может стать единой точкой отказа, поэтому обязательно компенсируйте это. Сказав это, задержка StateServer, как правило, намного меньше (= лучше), чем при использовании режима SQLServer.
Убедитесь, что ваш код / сайт корректно обрабатывает потерянное состояние, независимо от того, где вы храните данные.
Если у вас есть настройка баланса нагрузки (без использования липких сессий), вы не можете использовать InProc, поскольку (основываясь на настройке баланса нагрузки, конечно) вы можете переключаться между узлами.
Повторение рабочего процесса (но это, конечно, то же самое, что перезапуск w3wp) также убивает ваш сеанс, когда он InProc.