У меня есть IIS 6, на котором работает мой веб-сайт. Он находится на Windows Server 2003 с 4 ГБ оперативной памяти. Я запускаю интенсивный SQL-код после того, как пользователь отправит форму (математическая статистика). Этот процесс не является многопоточным (должно ли это быть, особенно если два или более пользователей запускают одно и то же?). Но мой процесс, похоже, занимает всего пару ГБ памяти, и сервер сканирует. Как заставить мой процесс IIS использовать почти всю память?
Я вижу на других сайтах, что его 2 ГБ или 3 ГБ выделены с помощью boot.ini. Но есть ли другой способ использования памяти процессом? Если я сделаю его многопоточным, будет ли процесс для каждого потока?
Память работает не так, как вы думаете. Хотя вполне возможно, что вы столкнетесь с узким местом физической памяти, сервер будет пейджинговать как сумасшедший. В файле подкачки хранятся неактивные в данный момент страницы. Видеть Как узнать, что мой сервер Windows меняет местами? для получения подробной информации о том, как используется память. Что касается многопоточного вопроса, нет, вы бы не выделяли дополнительное пространство памяти для каждого потока. Пространство памяти выделяется для каждого процесса (либо 2 пользовательских пространства +2 системы, либо 8 ТБ пользовательского пространства и 128 ГБ системы)