Две вещи:
1 - Вы не должны хранить столько сессии, что управление памятью является проблемой. I.e., не хранить объекты в сеансе, хранить указатели на вещи, например, а не экземпляр пользователя, просто сохраняя UserID. Если вам нужно, вы можете добавить кэширование извлечения информации, но это должно быть в кешированном слое отдельно от сеансов.
2 - сессий Использование базы данных, так что нет никакого беспокойства о памяти сервера, и таким образом, что вы можете добавить несколько веб-серверов легко при желании (примечание, StateServer дает такую возможность, а). Кроме того, это позволяет вам повторно использовать пул приложений, не теряя при этом их сеанс. Это основная причина, по которой я это делаю - это позволяет мне развертываться «на лету».
Причина, по которой эти сеансы так деликатно обрабатываются, заключается в том, что они зависают после последнего запроса пользователя, как правило, в течение 10-20 минут. Таким образом, запросы из разных сеансов могут использовать большие объемы памяти сервера, если вы храните большие объекты в сеансе. Выполнение даже более сумасшедших вещей, таких как сохранение соединений с базами данных в сеансе, может привести к тому, что вы будете использовать все доступные подключения к базе данных, просто потому, что многие из них висят в памяти, ожидая окончания сеанса.
В идеале нет необходимости в управлении сеансами.
Добро пожаловать в SO. Возможно, вы захотите добавить теги, специфичные для вашего языка программирования, чтобы привлечь больше зрителей. Кроме того, я не совсем понимаю вашу проблему, вы говорите о том, что у вас много пользовательских сеансов (почему все они будут активны сразу?) Или много данных для каждого пользователя, которые вы храните в сеансе? –