Как быстро SQL Server выпустит RAM, когда ОС будет сигнализировать о низком условии памяти?

Я встретился с этой проблемой при выполнении некоторых тестовых миграций наших приложений интранет от 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. О, хорошо.

5
задан 4 January 2019 в 18:52
2 ответа

Сначала разберитесь, как работает память Windows (см. Как узнать, выполняет ли мой сервер Windows подкачку? ).

Теперь, когда мы знаем, что подкачка страниц не так уж плоха , SQL Server не будет высвобождать память достаточно быстро, чтобы другие приложения в Windows, у которых были большие всплески памяти, были удовлетворены в течение того времени, которое мы считаем разумным.

Это не займет «дней», потребуется несколько дней, чтобы пострадал SQL ; не другое приложение. Это другое приложение, которому потребуется несколько часов, чтобы получить достаточно свободных страниц в памяти для работы с приемлемой скоростью (при условии запроса большой страницы памяти).

В общем случае, если на машине с SQL Server должны существовать другие приложения, это лучше всего Практикуйтесь, чтобы установить ограничения памяти SQL, если известно, что другое приложение имеет различия в потребностях в памяти.

Мне очень нравится цитата о том, что SQL Server «хорошо себя ведет» . На самом деле он ведет себя хорошо; это займет целую вечность (условно говоря).

2
ответ дан 3 December 2019 в 01:59

SQL Server использует два типа памяти, которые могут быть освобождены:

  • страницы данных (пул буферов)
  • кеши

Пока сигнализируется ситуация нехватки памяти, оба будут агрессивно обрезаны.

Кеши описаны в Вопросы и ответы: стрелки часов - для чего они нужны?
Механизм пула буферов описан в Управление буфером

  • Кеши можно обрезать, пока они не используются.
  • Чистые страницы пула буферов могут быть немедленно обрезаны (грязные страницы необходимо сначала сбросить на диск).

В целом, SQL Server может освободить всю память, которая может быть немедленно освобождена (чистые страницы, незакрепленные кеши), за считанные секунды. секунд. Грязные страницы могут быть освобождены, как только завершится очистка ввода-вывода. Понятия не имею, откуда взялась идея «на это нужны дни» ...

Стрелки часов - для чего они нужны?
Механизм пула буферов описан в Управление буфером

  • Кеши можно обрезать, пока они не используются.
  • Чистые страницы пула буферов могут быть немедленно обрезаны (грязные страницы необходимо сначала сбросить на диск).

В целом, SQL Server может освободить всю память, которая может быть немедленно освобождена (чистые страницы, незакрепленные кеши), за считанные секунды. секунд. Грязные страницы могут быть освобождены, как только завершится очистка ввода-вывода. Понятия не имею, откуда взялась идея «на это нужны дни» ...

Стрелки часов - для чего они?
Механизм пула буферов описан в Управление буфером

  • Кеши могут быть обрезаны, пока они не используются.
  • Чистые страницы пула буферов могут быть немедленно обрезаны (грязные страницы необходимо сначала сбросить на диск).

В целом, SQL Server может освободить всю память, которая может быть немедленно освобождена (чистые страницы, незакрепленные кеши), за считанные секунды. секунд. Грязные страницы могут быть освобождены, как только завершится очистка ввода-вывода. Понятия не имею, откуда взялась идея «на это нужны дни» ...

SQL Server может освободить всю память, которая может быть освобождена немедленно (чистые страницы, незакрепленные кеши) в считанные секунды. Грязные страницы могут быть освобождены, как только завершится очистка ввода-вывода. Понятия не имею, откуда взялась идея «на это нужны дни» ...

SQL Server может освободить всю память, которая может быть освобождена немедленно (чистые страницы, незакрепленные кеши) в считанные секунды. Грязные страницы могут быть освобождены, как только завершится очистка ввода-вывода. Понятия не имею, откуда взялась идея «на это нужны дни» ...

0
ответ дан 3 December 2019 в 01:59

Теги

Похожие вопросы