У меня есть Windows Server 2012 с IIS 8.0. В нем размещается множество небольших сайтов с низкой базой пользователей, которые не являются критическими в любом случае. С небольшим веб-сайтом я имею в виду, что код приложения и объем памяти довольно низкий, но из-за загруженных библиотек, таких как EntityFramework, потребление памяти приложениями составляет около 140 МБ при запуске и простоте.
В общем, это не большая проблема для полномасштабного веб-сервера, но у меня есть только VPS с 4 ГБ ОЗУ, в котором также работает несколько других приложений (базы данных, BIND, hMail и т.д.). Я использую его в основном как сервер разработки, чтобы играть со многими различными технологиями. Следовательно, Im быстро исчерпывает оперативную память, обслуживая десятки ~ 140 МБ w3wps.
Помимо приостановки, когда Idle Id хочет уменьшить потребление памяти, все еще используя любую фреймворк или библиотеку Id, которая нравится использовать, - на самом деле это цель всего.
Короче говоря:. Поскольку приложения не только используют одну и ту же версию .NET, но также некоторые библиотеки, такие как EF или MVC, было бы разумнее запускать несколько сайтов в одном app_pool, чтобы они могли делиться библиотеками? Или каждый сайт будет загружать свою собственную копию в любом случае (из-за разных доменов приложений, например обсуждаемых здесь)?
Бонусный вопрос: при рассмотрении аппаратного обновления 1 ГБ ОЗУ составляет 20 $/месяц, но весь сервер на SSD составляет 10 $/месяц. Хотя я знаю, что чтение из файла страницы всегда намного медленнее, чем чтение из ОЗУ. Я думаю об использовании большого файла подкачки на SSD вместо того, чтобы покупать 1gig дополнительной RAM в два раза больше цены - опять же, скорость веб-сайтов не является критичной, они должны просто работай. Будет ли это иметь какой-то смысл?