Я встретился с этой проблемой при выполнении некоторых тестовых миграций наших приложений интранет от IIS6 до 7. Я смог решить проблему путем изменения следующего раздела файла Web.config:
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory"/>
<remove name="ScriptHandlerFactoryAppServices"/>
<remove name="ScriptResource"/>
</handlers>
</system.webServer>
Измените validateIntegratedModeConfiguration на истинный, и удалите WebServiceHandlerFactory-интегрированный из удалить списка.
Достаточно странно от памяти ASP.NET добавляет те строки конкретно IIS7. О, хорошо.
Сначала разберитесь, как работает память Windows (см. Как узнать, выполняет ли мой сервер Windows подкачку? ).
Теперь, когда мы знаем, что подкачка страниц не так уж плоха , SQL Server не будет высвобождать память достаточно быстро, чтобы другие приложения в Windows, у которых были большие всплески памяти, были удовлетворены в течение того времени, которое мы считаем разумным.
Это не займет «дней», потребуется несколько дней, чтобы пострадал SQL ; не другое приложение. Это другое приложение, которому потребуется несколько часов, чтобы получить достаточно свободных страниц в памяти для работы с приемлемой скоростью (при условии запроса большой страницы памяти).
В общем случае, если на машине с SQL Server должны существовать другие приложения, это лучше всего Практикуйтесь, чтобы установить ограничения памяти SQL, если известно, что другое приложение имеет различия в потребностях в памяти.
Мне очень нравится цитата о том, что SQL Server «хорошо себя ведет» . На самом деле он ведет себя хорошо; это займет целую вечность (условно говоря).
SQL Server использует два типа памяти, которые могут быть освобождены:
Пока сигнализируется ситуация нехватки памяти, оба будут агрессивно обрезаны.
Кеши описаны в Вопросы и ответы: стрелки часов - для чего они нужны?
Механизм пула буферов описан в Управление буфером
В целом, SQL Server может освободить всю память, которая может быть немедленно освобождена (чистые страницы, незакрепленные кеши), за считанные секунды. секунд. Грязные страницы могут быть освобождены, как только завершится очистка ввода-вывода. Понятия не имею, откуда взялась идея «на это нужны дни» ...
Стрелки часов - для чего они нужны?В целом, SQL Server может освободить всю память, которая может быть немедленно освобождена (чистые страницы, незакрепленные кеши), за считанные секунды. секунд. Грязные страницы могут быть освобождены, как только завершится очистка ввода-вывода. Понятия не имею, откуда взялась идея «на это нужны дни» ...
Стрелки часов - для чего они?В целом, SQL Server может освободить всю память, которая может быть немедленно освобождена (чистые страницы, незакрепленные кеши), за считанные секунды. секунд. Грязные страницы могут быть освобождены, как только завершится очистка ввода-вывода. Понятия не имею, откуда взялась идея «на это нужны дни» ...
SQL Server может освободить всю память, которая может быть освобождена немедленно (чистые страницы, незакрепленные кеши) в считанные секунды. Грязные страницы могут быть освобождены, как только завершится очистка ввода-вывода. Понятия не имею, откуда взялась идея «на это нужны дни» ... SQL Server может освободить всю память, которая может быть освобождена немедленно (чистые страницы, незакрепленные кеши) в считанные секунды. Грязные страницы могут быть освобождены, как только завершится очистка ввода-вывода. Понятия не имею, откуда взялась идея «на это нужны дни» ...