Назад | Перейти на главную страницу

Влияет ли модель восстановления SQL Server 2008 и размер журнала на использование памяти процессом sqlservr.exe?

Проблема

У нас есть экземпляр SQL Server (2008 г.), на котором запущено наше программное обеспечение, с тем, что мы считаем небольшим количеством пользователей (около 30 одновременно подключенных к серверу в любой момент времени)

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

Хотя они используют этот сервер не только для SQL, и это проблема, которую нужно решать отдельно, мы недавно заметили, что процесс sqlservr.exe этого клиента использует намного больше оперативной памяти, чем мы ожидаем увидеть для нашего программного обеспечения.

Задний план

Во-первых, позвольте мне начать с упоминания, что я понимаю, что по умолчанию максимальная память сервера SQL в основном настроена на использование всего, что есть на сервере. Мы изменили это значение на 10 ГБ, так как ожидаем, что им в любой момент времени потребуется всего около 4-6 ГБ, учитывая их размер и части программного обеспечения, которое они используют.

Некоторые фрагменты информации, которые могут иметь или не иметь отношения к моему вопросу:

  1. У них есть базы данных для нашего программного обеспечения, настроенные на модель ПОЛНОГО восстановления, и журналы росли и увеличивались без обслуживания около 3 лет.
  2. Когда мы перезапускаем службы SQL, пользователи возвращаются в программное обеспечение, и в течение примерно 24 часов они используют тот объем оперативной памяти, который мы ожидаем увидеть (около 4-6 из выделенных 10 ГБ).
  3. Мы запускали Perfmon, чтобы сравнить некоторые результаты счетчиков с периодом времени, когда у них не было этой проблемы, но не заметили каких-либо существенных различий между журналами.
  4. Проверено средство просмотра событий на наличие очевидных проблем с памятью

Вывод

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

Итак, чтобы свести все это к одному TLDR:

Влияет ли модель восстановления SQL Server 2008 и размер журнала на использование памяти процессом sqlservr.exe? Если да, то является ли мое описание нашей «проблемы» нормальным для SQL, и мы просто не сталкивались с ней раньше? Если ответ отрицательный, что еще вы бы посоветовали изучить, чтобы решить мою проблему?

Насколько велика эта база данных? SQL Server любит помещать всю базу данных в память. Судя по вашему вопросу, это звучит так, как будто это MDF на 200 МБ с LDF на 250 ГБ или что-то в этом роде ужасающее.

Модель восстановления не входит в него, если только они не пренебрегают базой данных, что явно так.

  • Установите для базы данных простое восстановление.
  • Уменьшите файл журнала до разумного размера.
  • Установите базу данных на полное восстановление.
  • Запустите полную резервную копию.
  • Немедленно график регулярный полные резервные копии журналов и журналов транзакций.

Я лично не стал бы тратить время на изучение чего-либо еще, пока вы не реализуете базовое обслуживание базы данных (хотя 10 ГБ кажутся мне скудным выделением памяти для SQL Server).