4

У нас есть Windows 2008 R2 на сервере HP с 24 ГБ оперативной памяти. Единственное важное установленное программное обеспечение - это SQL Server 2008 R2, и в этой Windows практически не включены ни одна функция или роль.

Но проблема в том, что ОЗУ всегда почти заполнено. Когда мы смотрим на производительность в Диспетчере задач или в части памяти Resource Monitor или сторонних программ, мы видим, что около 97% -99% ОЗУ 24 ГБ занято, но сумма всей используемой памяти процессов меньше 1 ГБ.

Если этот процент оперативной памяти используется, почему Windows не может показать, какие процессы используют этот объем памяти? и если нет, то почему Windows говорит, что RAM заполнена?

3 ответа3

6

SQL Server использует всю доступную память. Это не ошибка, это дизайн. Вот почему SQL Server должен быть установлен на выделенных компьютерах (например, не вместе с IIS).

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

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

Вот цитата из Как настроить использование памяти с помощью параметров конфигурации в SQL Server на веб-сайте поддержки Microsoft:

При запуске SQL Server использование памяти SQL Server может продолжать неуклонно увеличиваться и не уменьшаться, даже если активность на сервере низкая. Кроме того, диспетчер задач и монитор производительности могут показывать, что объем доступной физической памяти на компьютере неуклонно уменьшается, пока объем доступной памяти не составит от 4 до 10 МБ.

Одно только это поведение не указывает на утечку памяти. Это нормальное поведение и предполагаемое поведение пула буферов SQL Server.

3

Вы можете использовать RAMMap, чтобы узнать, какой процесс использует вашу память (и как).

1

Чтобы указать максимальный и минимальный объем памяти, которую использует SQL Serve:

  1. Щелкните правой кнопкой мыши экземпляр SQL Server в проводнике объектов SQL Server Management Studio.
  2. Выберите Свойства
  3. Выберите вкладку Память

Для получения дополнительной информации см. Эту статью: Влияние минимальной и максимальной памяти сервера

Что касается распределения памяти для конкретного процесса, вы можете начать с Windows Resource Monitor

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .