Я занимаюсь разработкой легкого интернет-магазина. Этот магазин интегрируется с различными источниками. Абсолютно служит «плагином» для разных сценариев. То есть Плагин для бухгалтерского пакета для продажи локальных акций в Интернете и отражения продаж и т. Д.
Моя дилемма заключается в следующем: я борюсь за принятие определенного решения о том, как наилучшим образом реализовать информацию о состоянии. Этот магазин основан на шаблонах, поэтому я загружаю все детали шаблона из БД при первоначальной посадке. Затем я сохраняю эти детали в переменной сеанса и использую их для установки стилей элементов по мере необходимости, когда магазин делает свое дело.
Я беспокоюсь о нагрузке ... Я легко достигаю 100 МБ в рабочем процессе. Кажется, он колеблется под 100 МБ. Но я беспокоюсь о масштабируемости. Мне понадобится этот магазин для обслуживания сотен одновременно работающих пользователей.
Сам магазин не выполняет никаких запросов к базе данных. Все происходит из веб-службы / службы (WCF) и помещается в переменные сеанса. И переменные сеанса загружаются / перезагружаются только из веб-ссылки, если они пусты.
Мой текущий хост ограничен 100 МБ. Что заставляет мой рабочий процесс быть перезапущенным, вызывая ошибку представления macstate и сбрасывая мой сеанс. Я использовал свой локальный IIS и не могу заставить его реально расти больше, чем 100 МБ, независимо от того, что я делаю. Кажется, что он скачет до 80 МБ, а затем установится там, когда память будет переработана и т. Д.
Я определенно вручную перерабатываю все свои соединения WCF и переменные, поскольку они выполняются с целью их назначения. ТАК никаких утечек памяти, которые я могу найти. Как я уже сказал, он на самом деле не растет, использует только x объем памяти, а затем действительно зависает там ... немного вверх или вниз ...
Должен ли я считать, что мой сеанс хранится в БД, а не в памяти?
Или я должен полностью изменить свой подход? Что бы вы поделились своими мыслями?