Память SQL Server постоянно растет, с 1 ГБ ОЗУ до 7 ГБ в неделю

8

У меня есть база данных ~ 45 ГБ, которая быстро увеличивается (~ 1 ГБ каждую неделю).

Так что он делает много вставок; В веб-приложении не так много пользователей, поэтому число обращений сейчас низкое.

Но я заметил, что пользователи RAM sql server перешли с ~ 1 ГБ при первом запуске сервера на ~ 7 ГБ ОЗУ через неделю.

Есть ли какая-то утечка памяти? В MSDN была статья, в которой предлагалось, чтобы сервер SQL увеличивал объем памяти, используемой для кэширования, и этот показатель будет постоянно увеличиваться. Однако на сервере только 7,5 ГБ или оперативной памяти, поэтому я беспокоюсь, что ему не хватит памяти, если я не перезагружаю SQL Server каждую неделю ... что кажется неправильным.

Это типичное поведение? Есть ли какие-то настройки, которые я могу установить, чтобы установить ограничение на использование памяти?

rksprst
источник
3
Смотрите ответ Farseeker. Он ударил гвоздь по голове. Это нормальное, нестандартное поведение, и хотя есть способ ограничить использование памяти SQL; вам не нужно этого делать. Наш SQL-сервер занимает всего 10,5 ГБ - 11 ГБ (из общего объема 12 ГБ) памяти за несколько часов. Я и мой администратор базы данных очень счастливы, когда мы видим SQL с таким большим объемом памяти. Это означает, что наши приложения будут иметь доступ к этим данным намного быстрее.
Cypher

Ответы:

14

SQL-сервер предназначен для использования как можно большего количества оперативной памяти. SQL-сервер также невероятно умный. У нас есть серверы баз данных с оперативной памятью от 2 ГБ до 96 ГБ, и мне ни разу не приходилось вмешиваться и начинать управлять ОЗУ вручную, и большинство из них используют 99,5%.

Простой факт заключается в том, что SQL Server, работающий с 1 ГБ потребленной памяти, будет выполняться намного медленнее при чтении, чем SQL-сервер, работающий с 96 ГБ потребленной памяти.

Если вы не делите роли сервера SQL с другими ролями, интенсивно использующими память, просто оставьте это в покое. Он никогда не будет использовать больше памяти, доступной в системе, и если он достигнет 99% использования, то отлично - вы создали большой кеш, и теперь все будет быстрее.

Марк Хендерсон
источник
Спасибо, понятия не имел, что это ожидаемое и желаемое поведение. Я обязательно оставлю это в покое.
rksprst
1
@rksprst - все хорошо, нужно привыкнуть.
Марк Хендерсон
2

Как правило, вы хотите выделить 1-2 гигабайта оперативной памяти для ОС, чтобы у ОС была оперативная память для работы. Затем SQL Server может иметь остальную часть памяти.

mrdenny
источник
Некоторые источники MS рекомендуют ограничить вашу память, поэтому +1.
Сэм