Максимальный объем памяти SQL Server, файл подкачки, максимальная степень параллелизма

15

Надеемся, что вы, администраторы вселенной, сможете ответить на три вопроса:


  1. Я знаю, что лучше всего устанавливать максимальный объем памяти SQL Server. Поэтому, если на сервере с 44 ГБ ОЗУ установлен SQL Server, мы должны установить максимальный объем памяти SQL Server примерно 37 ГБ.

Но что мы должны установить, если служба анализа SQL и службы отчетов SQL установлены на том же сервере, что и SQL Server? Тогда лучше установить максимальную память SQL Server в 22 ГБ ОЗУ, чтобы анализ мог использовать другие 22 ГБ ОЗУ?


  1. На сервере под управлением SQL Server с 44 ГБ ОЗУ, что лучше всего настроить размер файла подкачки? Я прочитал на Бренте Озаре ( http://www.brentozar.com/archive/2014/06/sql-server-setup-checklist-free-ebook-download/ ) следующее:

SQL Server не нужен гигантский файл подкачки. если вы устанавливаете другие приложения на сервере (что мы не рекомендуем - SQL Server должен быть изолирован). вам может понадобиться файл подкачки большего размера. Если SQL Server является единственной основной службой, работающей на коробке, мы обычно создаем файл подкачки размером 2 ГБ на системном диске.

Microsoft говорит, что мы должны установить файловую систему под управлением страницы в 1,5 раза больше оперативной памяти, что соответствует рекомендациям Remus (см. -> http://rusanu.com/2009/11/22/system-pagefile-size-on-machines-with -большой баран / ).

Таким образом, на нашем сервере с 44 ГБ ОЗУ у нас установлен SQL Server рядом с SQL Analysis Service и SQL Reporting Services. Какой размер мы должны установить файл подкачки?


  1. Для SharePoint, SQL Server, который является частью фермы SharePoint и где SharePoint хранит свои базы данных, максимальная степень параллелизма должна быть установлена ​​на 1. Теперь, когда у нас есть сервер, который не является частью фермы SharePoint (назовем его sql2) на этом На сервере у нас установлен SQL Server, SQL Analysis и отчетность. SharePoint не хранит свои базы данных на этом сервере, но у нас есть созданные базы данных / аналитические базы данных / кубы, которые SharePoint читает и записывает в.

Брент Озар говорит:

Основное правило: установите это количество физических ядер в одном разъеме узла (процессора) NUMA на вашем оборудовании или меньше

Что мы должны настроить на этом экземпляре SQL Server для максимальной степени параллелизма, когда он имеет 4 VCPU?


Надеюсь, вы, ребята, дадите не только мне, но и большему количеству администраторов sql более глубокое понимание лучших практик, чем джунгли в сети.

sp_eric_blitz
источник

Ответы:

12

Ваши 3 вопроса касаются max memory, page fileи max dop setting.

МАКСИМАЛЬНАЯ ПАМЯТЬ


Если сервер выделен только для SQL Server без служб Analysis Services (поскольку SSAS - еще один зверь), то рекомендуемые рекомендации Гленна являются хорошей отправной точкой . Для дополнительных компонентов, вы должны обратиться к блогу Джонатана о том, как настроить максимальную память .

Я ответил на SQL Server Максимальная и минимальная конфигурация памяти . Это будет полезно, если на вашем экземпляре сервера запущено много пакетов служб SSIS .

Файл подкачки


Обычно я устанавливаю его на C:\диске, на котором достаточно места. Я согласен с рекомендациями Ремуса и Брента. Так и должно быть PAGE FILE FOR SQL SERVER = 1.5 * RAM. Файл подкачки будет полезен, когда вы столкнетесь с ситуацией, когда вам придется использовать ПОЛНУЮ ПАМЯТЬ ПАМЯТИ (обычно запрашивается Microsoft CSS) для устранения неполадок.

Прочитайте Как определить подходящий размер файла подкачки для 64-разрядных версий Windows KB 889654, и Бак Вуди рассказывает о файле подкачки здесь .

MAX DOP Setting


Для sharepoint рекомендуется maxdop = 1установить значение instance wide. Для обычного сервера sql я бы посоветовал вам следовать следующим правилам: каков хороший и повторяемый способ расчета MAXDOP на SQL Server? У меня есть сценарий, который рассчитает для вас.

Суть ниже ( KB 2806535 также упоминает то же самое):

8 or less processors    ===> 0 to N (where N= no. of processors)
More than 8 processors  ===> 8
NUMA configured         ===> MAXDOP should not exceed no of CPUs assigned to each 
                                 NUMA node with max value capped to 8
Hyper threading Enabled ===> Should not exceed the number of physical processors.

В качестве примечания я бы предложил вам прочитать - Рекомендуемые обновления и параметры конфигурации для SQL Server 2012 и SQL Server 2014 с высокопроизводительными рабочими нагрузками.

Кин Шах
источник
Стоит отметить, что в сообщении Бака Вуди, которое упоминалось выше, Ремус комментирует: «Спасение дня - это AWE: память, зарезервированная через AWE, не обязана резервировать файл подкачки (поскольку она заблокирована в физической памяти и поэтому не может быть «AWE - автоматическое подключение к x64». Который, кажется, видел с AWE, нам не нужен большой файл подкачки.
Джейсон Картер
@ Кин, ты сказал: «Я согласен с рекомендацией Ремуса и Брента». Но после ознакомления с Руководством по настройке Brent (цитируется OP выше) и статьей Remus они противоречивы. Поэтому для меня ваш ответ относительно файла подкачки оставляет нерешенными вопросы.
Magier
1
@Magier Я склоняюсь к рекомендациям MS, поскольку попал в ситуацию, когда нам потребовался полный дамп памяти для диагностики проблемы - мы не знали, был ли это Windows или SQL Server. В этой ситуации рекомендация MS является лучшей. Если вы не попали в эту ситуацию, то совет Брента также действителен. Я склонен быть в безопасности, поэтому я продолжаю PAGE FILE FOR SQL SERVER = 1.5 * RAM. Это отвечает на ваш вопрос?
Кин Шах
3

Таким образом, на нашем сервере с 44 ГБ ОЗУ у нас установлен SQL Server рядом с SQL Analysis Service и SQL Reporting Services. Какой размер мы должны установить файл подкачки?

Хорошо добавляя к тому, что уже упоминал Кин, я предлагаю вам использовать, Perfmon Countersчтобы рассчитать размер файла подкачки. Я также согласен с рекомендацией Remus о файле подкачки в 1,5 раза больше оперативной памяти в системе . Но эта рекомендация рассматривает все возможные аспекты и сценарии и «общую рекомендацию». Я думаю, вы больше заинтересованы в конкретной ценности. Так вот

Потребности файла подкачки отдельной системы будут различаться в зависимости от роли сервера, нагрузки и т. Д. Существуют некоторые счетчики производительности, которые можно использовать для мониторинга использования выделенной частной памяти в масштабе всей системы или для каждого файла подкачки. Невозможно определить, какая часть частной выделенной памяти процесса является резидентной и какая часть выгружается в файлы подкачки.

Память: зафиксированные байты: количество байтов виртуальной памяти, которые были зафиксированы. Это не обязательно отражает использование файла подкачки - оно представляет объем пространства подкачки, который был бы использован, если процесс был полностью сделан нерезидентным

Memory: Commit Limit: количество байтов виртуальной памяти, которое может быть зафиксировано без необходимости расширения файлов подкачки.

Файл подкачки:% использования% зафиксированного файла подкачки

Файл подкачки:% Usage Peak Наибольший процент зафиксированного файла подкачки

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

Тогда лучше установить максимальную память SQL Server в 22 ГБ ОЗУ, чтобы анализ мог использовать другие 22 ГБ ОЗУ?

Нет, я не думаю, что вы пропустили требования к ОС здесь. Сначала необходимо установить оптимальный максимальный объем памяти сервера для SQl Server. Этот поток SE имеет более подробную информацию о настройке правильного максимального значения памяти сервера. Опять же, я очень и всегда отвечаю на счетчики perfmon, чтобы увидеть, какое значение будет оптимальным. Я предлагаю вам прочитать эту статью и воспользоваться помощью счетчиков, чтобы установить оптимальное значение для SSAS. Однажды я использовал этот блог, чтобы установить значение памяти для SSAS. Я не настолько увлечен SSAS, поэтому мои комментарии будут ограничены только этой статьей.

Вы должны оставить MAXDOP = 1 для экземпляров Sharepoint его широко принятым параметром. Если IIRC рекомендация стала широко принятой после частых тупиков, когда максимальная степень параллелизма была оставлена ​​по умолчанию

Shanky
источник
3

Все остальные ответы, приведенные на данный момент для ссылки на размер файла подкачки, относятся к устаревшим статьям. Этот пост в блоге Technet более актуален (октябрь 2015 г.) и дает более подробный способ расчета идеального размера файла подкачки в современных системах.

Они четко заявляют, что старое эмпирическое правило 1,5 х RAM больше не применяется.

Я вставил основное содержание этой статьи ниже, чтобы избежать гниения ссылок.

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


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

Как узнать, сколько памяти требуется вашему приложению? Лучший способ - взять базовый уровень.

Run Performance Monitor (Perfmon)
Go to Data Collector Sets\User Defined
Right click on User Defined and select New
Select Create Manually and next
Check Performance counter
Add the following counters:

        Memory\Committed Bytes - Committed Bytes is the amount of committed virtual memory, in bytes.
        Memory\Committed Limit - Amount of virtual memory that can be committed without having to extend the paging file
        Memory\% Committed Bytes In Use - Ratio of Memory\Committed Bytes to the Memory\Commit Limit 

Примечание. Убедитесь, что вы собираете информацию в течение длительного периода времени (не менее одной недели), и сервер работает с максимальной нагрузкой.

Формула размера файла подкачки должна быть:

(Максимальное значение Committed Bytes + дополнительный 20% буфер для размещения любых пакетов рабочей нагрузки) -RAM размер

Например: если на сервере установлено 24 ГБ ОЗУ, а максимальное количество зарезервированных байтов составляет 26 ГБ, рекомендуется использовать файл подкачки: (26 * 1,2) -24) = 7,2 ГБ.

Как насчет второго фактора: размер, который нам нужен для записи информации при сбое системы?

Размер дампа памяти определяется его типом:

Complete Memory Dump  RAM Size + 257 MB
Kernel Memory Dump  The amount of kernel-mode memory in use (on 32-bit maximum is 2 GB, on 64-bit the maximum can go up until 8 TB)
Small Memory Dump  64KB  512 KB

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

Исходя из моего опыта, размер дампа памяти ядра обычно следующий:

On System with up to 256GB RAM =  8-12 GB size for Kernel Memory dump
On System with up to 1.5TB RAM = 8-32 GB size for Kernel Memory dump

Однако эти цифры НЕ являются официальной рекомендацией Microsoft и могут отличаться на ваших серверах, поэтому всегда проверяйте их перед подачей заявки.

Майк
источник
2

Отвечая, так как я один из тех, кого вы цитируете, хе.

1. Что я должен установить максимальный объем памяти, когда я также запускаю службы Analysis Services?

Вы не найдете рекомендаций, потому что SSAS, как и любое другое приложение, установленное на вашем SQL Server: мы просто не знаем, сколько памяти вы собираетесь использовать. Относитесь к SSAS / SSIS / SSRS как к сторонним приложениям - они просто включены как «бесплатные» в поле SQL Server. У них совершенно разные потребности в процессоре, памяти и памяти.

2. Какой я должен установить размер файла подкачки?

Мои рекомендации таковы, что Windows может сделать мини-дамп. Если вы столкнулись с проблемой, когда вам нужно обратиться в службу поддержки Microsoft, вы можете начать с мини-дампа. Если проблема повторяется, и они не могут выяснить ее из мини-дампа (или других источников информации, таких как журнал ошибок), то они могут попросить вас увеличить объем оперативной памяти в 1,5 раза.

Рекомендации Microsoft по 1,5-кратному объему оперативной памяти таковы, что Windows может выполнить полный сброс памяти при сбое системы.

В наши дни, когда серверы имеют 64-128-256 ГБ ОЗУ, обычно не рекомендуется отключать Windows, чтобы записать все содержимое памяти во время сбоя. Вы бы предпочли, чтобы SQL Server был запущен и работал, и имел дело с содержимым мини-дампа, а не с полным. Сохраните полные дампы на потом - обычно вы можете пройти всю свою карьеру, не загружая файл дампов объемом 64 ГБ в Microsoft. (Удачи на этом.)

3. Что мне установить для MAXDOP для SharePoint?

То, что вы называете «моими» рекомендациями, взято из Microsoft KB 2806535 . Начните там в целом, но когда конкретное приложение говорит вам что-то другое, тогда они знают что-то об их приложении, отличное от SQL Server в целом - следуйте этому.

Брент Озар
источник