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

Макс. И мин. Установка памяти

Один отказоустойчивый кластер имеет 2 узла с 64 ГБ оперативной памяти каждый: - Узел A и узел B. Узел A запускает 2 экземпляра SQL (SQL1 и SQL2). Узел B запускает 1 экземпляр SQL (SQL3).

SQL1 has a max server setting of 30,720MB and min server setting of 1024MB.
SQL2 has a max server setting of 8192 MB and Min server setting of 1024 MB.
SQL3 doesn’t have any min & max settings.

После отслеживания Available mbyte, target server memory и total server memory от perfmon, вот что я собрал:

SQL1:- Available MByte: 26GB, Target Server Memory: 30GB, Total Server Memory: 29.8GB
SQL2:- Available MByte: 24GB, Target Server Memory: 8GB, Total Server Memory: 7GB
SQL3:- Available MByte: 58GB, Target Server Memory: 54GB, Total Server Memory: 1GB

Обратите внимание, что это активный / активный отказоустойчивый кластер. Мой вопрос: как установить максимальную и минимальную память? Это 64-битный сервер Win2k8 R2 с экземплярами SQL 2008 R2. Я рассчитал и достиг 7 ГБ, чтобы оставить для ОС, рабочих потоков, многостраничных и других приложений. Но мне нужно выяснить, как сбалансировать настройки минимальной и максимальной памяти экземпляров SQL. Как узнать объем памяти, необходимый для каждого экземпляра? Как лучше всего установить минимальное значение? Пожалуйста помоги.

Эти максимальные и минимальные значения уже были кем-то настроены на экземплярах, и я подумал, что это не будет точно в сценарии высокой доступности. Итак, мне нужно отрегулировать его, и мне нужно ваше мнение о том, как я могу это отрегулировать. Или как я могу определить, какому экземпляру требуется столько ОЗУ или около того. Я думаю, вкратце, как определить использование памяти каждым экземпляром.

параметры минимальной и максимальной памяти сервера указывают серверу sql, сколько оперативной памяти должно быть выделено. У меня есть это в своих заметках о создании кластеров sql, которые, по-видимому, происходят из MSDN Вот

проверьте объект производительности SQLServer: Buffer Manager под нагрузкой и отметьте текущие значения счетчиков «Украденные страницы» и «Зарезервированные страницы». Эти счетчики сообщают о памяти как о количестве страниц размером 8К. Максимальный объем памяти сервера должен быть выше суммы этих двух значений, чтобы избежать ошибок нехватки памяти. Приблизительное значение минимального допустимого максимального размера памяти сервера (в МБ) составляет ([Украденные страницы] + [Зарезервированные страницы]) / 100.

Сложность возникает, когда вы обнаруживаете, что у вас недостаточно оперативной памяти на 1 узле, чтобы все были довольны минимальной памятью сервера. Теперь вам нужно выбрать наименее любимый экземпляр и заставить его страдать, или разделить боль и выбрать мало кто страдает.

«min server memory» определяет предел, при котором SQL перестанет динамически освобождать память. Эта настройка обычно не нужна. Это не гарантирует, что SQL Server будет выделен хотя бы такой объем памяти. Когда SQL Server запускается, он фиксирует столько памяти, сколько необходимо, даже если это меньше, чем предел «минимальной памяти сервера». По мере кэширования большего количества страниц данных и планов запросов объем памяти, фиксируемой SQL, увеличивается. Когда объем выделенной памяти превышает предел «минимальной памяти сервера», SQL может освобождать страницы (до этого предела) по мере необходимости, чтобы минимальный объем свободной физической памяти оставался около 10 МБ.

Здесь не нужно много информации, например, что делают базы данных SQL и почему кластер активен / активен.

Из приведенных выше деталей я могу только предположить, что:

  • На узле 1 работают две базы данных с низким приоритетом (SQL1 / SQL2)
  • Узел 2 работает с более важной базой данных (SQL3), для которой требуется выделенный ЦП / ОЗУ, и вы хотите, чтобы для этого было выполнено аварийное переключение (на узел 1).
  • У вас есть общее хранилище, которое в настоящее время не связано с дисковым вводом-выводом (т. Е. Используемый ЦП не используется, потому что он ожидает заполнения буферов)
  • Вы выполнили все обычные проверки узких мест производительности

В аварийной системе у вас будет только 18 ГБ ОЗУ для SQL3. Как SQL3 будет работать менее чем с 1/3 обычной оперативной памяти? «Целевой размер» предполагает, что ему нравится много оперативной памяти.

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