Максимальна пам'ять SQL Server, файл сторінки, паралелізм максимуму


15

Три питання сподіваємось, що ви зможете відповісти господарям DBA у Всесвіті:


  1. Я знаю, що найкраща практика встановити максимальну пам'ять SQL Server. Отже, якщо на сервері з 44 ГБ оперативної пам’яті встановлено SQL Server, ми маємо встановити максимальну пам’ять для SQL Server приблизно 37 Гб.

Але що нам встановити, якщо служба аналізу SQL та служби звітування SQL встановлені на одному сервері, що і SQL Server? Тоді краще встановити максимальну пам'ять SQL Server на 22 ГБ оперативної пам’яті, щоб аналіз міг взяти інші 22 ГБ оперативної пам’яті?


  1. На сервері, на якому працює SQL Server із 44 ГБ оперативної пам’яті, яка найкраща практика для встановлення розміру файлу сторінки? Я прочитав на Brent Ozar ( http://www.brentozar.com/archive/2014/06/sql-server-setup-checklist-free-ebook-download/ ) наступне:

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

Корпорація Майкрософт каже, що нам слід встановити файлову систему сторінок, яка зуміла 1,5-кратну оперативну пам’ять, що відповідає рекомендаціям, наданим Ремусом (див. -> http://rusanu.com/2009/11/22/system-pagefile-size-on-machines-with -великий-баран / ).

Тож на нашому сервері з 44 ГБ оперативної пам’яті у нас встановлений SQL сервер поруч із службою аналізу SQL та службами звітування SQL. Якого розміру ми повинні встановити файл сторінки?


  1. Для SharePoint SQL Server, який є частиною ферми SharePoint і де SharePoint зберігає його бази даних, максимум паралелізму має бути встановлено на 1. Тепер у нас на цьому сервері, який не є частиною ферми SharePoint (називайте його sql2) Сервер у нас встановлений SQL Server, SQL аналіз та звітування. SharePoint не зберігає свої бази даних на цьому сервері, але у нас є бази даних / куби звітів та аналіз, які SharePoint читає і записує.

Брент Озар каже:

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

Що ми маємо налаштувати на цьому екземплярі SQL Server для максимальної ступеня паралелізму, коли він має 4 VCPU?


Сподіваюсь, ви, хлопці, дасте не тільки мені, але й більше sql адміністраторам трохи більше розуміння кращих практик, ніж джунглі на міжвузлях.

Відповіді:


12

Ваші 3 питання помацати max memory, page fileі max dop setting.

МАКСОВА ПАМ’ЯТА


Якщо сервер призначений тільки для SQL Server без служб аналізу (оскільки SSAS - це інший звір), то найкраща відпрацьована практика Glenn - це хороша відправна точка . Для отримання додаткових компонентів слід звернутися до блогу Джонатана про те, як налаштувати макс. Пам'ять .

Я відповів на максимальну та мінімальну конфігурацію пам'яті на SQL Server . Це буде корисно, якщо на вашому екземплярі сервера працює багато пакетів SSIS .

Файл сторінки


Я зазвичай встановлюю його далеко від C:\диска на диску, який має достатньо місця на диску. Я згоден з рекомендацією Ремуса та Брента. Це повинно бути PAGE FILE FOR SQL SERVER = 1.5 * RAM. Файл сторінки буде корисним, коли ви зіткнетесь із ситуацією, коли для усунення несправностей вам доведеться взяти ПОВНОМУ ДЕМПАЛІ ПАМ'ЯТІ (як правило, просить Microsoft CSS)

Прочитайте, як ретельно визначити відповідний розмір файлу сторінки для 64-розрядних версій Windows KB 889654, і Buck Woody розповідає про файл сторінки тут .

Налаштування MAX DOP


Для sharepoint рекомендується maxdop = 1встановити екземпляр у ширину. Для звичайного сервера 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, нам не потрібен великий файл сторінки.
Джейсон Картер

@Kin ти сказав: "Я згоден з рекомендацією Ремуса та Брента". Але переглянувши Посібник із налаштування Brent (цитується ОП вище) та Статтю Ремуса, вони суперечать один одному. Тому для мене ваша відповідь щодо файлу сторінки залишає очікувані питання.
Magier

1
@Magier Я схиляюсь до рекомендацій MS, оскільки я потрапив у ситуацію, коли нам потрібно було зробити повний дамб пам'яті, щоб діагностувати проблему - ми не знали, чи це сервер Windows, чи сервер sql. У цій ситуації найкраща рекомендація МС. Якщо ви не потрапляєте в цю ситуацію, то порада Брента також справедлива. Я, як правило, на безпечній стороні, тому йду з цим PAGE FILE FOR SQL SERVER = 1.5 * RAM. Це відповідає на ваше запитання?
Кін Шах

3

Тож на нашому сервері з 44 ГБ оперативної пам’яті у нас встановлений SQL сервер поруч із службою аналізу SQL та службами звітування SQL. Якого розміру ми повинні встановити файл сторінки?

Добре додаючи до вже згаданого Кіна, пропоную скористатися Perfmon Countersдля обчислення розміру файлу сторінки. Я також погоджуюся з рекомендацією Remus, що файл сторінки повинен бути в 1,5 рази більше оперативної пам'яті в системі . Але ця рекомендація враховує всі можливі аспекти, сценарій та "загальну рекомендацію". Я думаю, вас більше цікавить конкретна цінність. Так ось воно

Потреби у файлах сторінок окремої системи залежать від ролі сервера, завантаження тощо. Існують деякі лічильники продуктивності, які можна використовувати для моніторингу використання приватної пам'яті на основі системи на всій системі чи на сторінці. Немає можливості визначити, яка частина приватної присвяченої пам'яті процесу є резидентом і скільки підказками для файлів підкачки.

Пам'ять: скоєні байти: кількість байтів віртуальної пам’яті, яку було здійснено. Це не обов'язково являє собою використання файлу сторінки - це кількість простору файлу сторінки, яка буде використана, якби процес був повністю нерезидентом

Пам'ять: Ліміт фіксації: Кількість байтів віртуальної пам'яті, яку можна здійснити без необхідності розширення файлів підкачки.

Файл підкачки:% відсотків використання допущеного файлу підкачки

Файл підкачки:% Пік використання Найвищий відсоток скоєного файлу підкачки

Будь ласка, використовуйте вище лічильники, щоб встановити належне значення для файлу сторінки. Ви можете прочитати це посилання, щоб отримати додаткову інформацію про файл сторінки.

Тоді краще встановити максимальну пам'ять SQL Server на 22 ГБ оперативної пам’яті, щоб аналіз міг взяти інші 22 ГБ оперативної пам’яті?

Ні, я не думаю, щоб ви пропустили тут вимоги до ОС. Спочатку потрібно встановити максимальну максимальну кількість серверів для сервера SQl. Цей потік SE містить більш детальну інформацію про встановлення правильного значення максимальної пам'яті сервера. Знову жваво і завжди відповідаю на лічильники парфмонів, щоб побачити, що б було оптимальним значенням. Я пропоную вам прочитати цю статтю і скористатися допомогою лічильників, щоб встановити оптимальне значення для SSAS. Я колись використовував цей блог, щоб встановити значення пам'яті для SSAS. Я не так багато в SSAS, тому мої коментарі будуть обмежені лише цією статтею.

Ви повинні зберегти MAXDOP = 1 для екземплярів Sharepoint, що є його загальноприйнятим параметром. Якщо IIRC, рекомендація стала широко прийнятою після того, як виникали часті тупикові місця, коли максимальний ступінь паралелізму був залишений до значення за замовчуванням


3

Усі інші відповіді, наведені на даний момент для посилання на розмір файлу сторінки, відносно застарілі статті. Ця публікація в блозі Technet є більш актуальною (жовтень 2015 року) і дає більш детальний спосіб розрахунку ідеального розміру файлу сторінки в сучасних системах.

Вони чітко зазначають, що старе правило розміром 1,5 х оперативної пам’яті більше не застосовується.

Я вставив основний вміст цієї статті нижче, щоб уникнути гниття посилань.

Зауважте, що вони рекомендують збирати показники з вашого сервера, які працюють з піковим використанням не менше 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 

Примітка. Переконайтеся, що ви збираєте інформацію протягом тривалого періоду (принаймні один тиждень), і сервер працює в пікове використання.

Формула розміру файлу сторінки повинна бути:

(Максимальне значення зобов’язаних байтів + ​​додатковий буфер 20% для розміщення будь-яких спалів робочого навантаження) -розмір оперативної пам’яті

Наприклад: Якщо на сервері є 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

Однак ці цифри НЕ є офіційною рекомендацією корпорації Майкрософт і можуть бути різними на ваших серверах, тому завжди перевіряйте їх перед тим, як подати заявку.


2

Відповідаючи, оскільки я один з людей, яких ви цитуєте, хе.

1. На що слід встановити макс. Пам'ять, коли я також запускаю служби аналізу?

Ви не знайдете керівництва там, оскільки SSAS - це як і будь-який інший додаток, який встановлюється на ваш SQL Server: ми просто не знаємо, скільки пам’яті ви збираєтеся використовувати. Ставтесь до SSAS / SSIS / SSRS як до сторонніх додатків - вони просто потрапляють як "безкоштовні" у поле SQL Server. Вони мають абсолютно різні потреби в процесорі, пам'яті та сховищі.

2. Для чого слід встановити розмір файлу сторінки?

Мої рекомендації такі, що Windows може робити міні-дамп. Якщо ви зіткнулися з проблемою, коли вам потрібно викликати службу підтримки Microsoft, ви можете почати з міні-дампа. Якщо проблема повторюється, і вони не можуть розібратися з міні-дампа (або інших джерел інформації, наприклад журналу помилок), вони можуть попросити вас перейти до розміру 1,5х оперативної пам’яті.

Рекомендації Майкрософт у 1,5 раза для оперативної пам’яті - це те, що Windows може робити ПОЛІВНИЙ скид пам’яті при збої системи.

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

3. Для чого мені встановити MAXDOP для SharePoint?

Те, що ви називаєте "моїми" рекомендаціями, - від Microsoft KB 2806535 . Почніть з цього загалом, але коли конкретна програма повідомляє вам щось інше, вони знають щось про їх додаток, що відрізняється від SQL Server взагалі - дотримуйтесь цього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.