Налаштування Windows Server 2008/2003 x64 для обслуговування SQL Server 2008

Ця стаття – вільна інтерпретація рекомендацій: Microsoft, IBM, HP, Dell, QLogic, LSI, EMC, ACER, Bull, Fujitsu, Hitachi, NEC і Unisys.

Оновлення установки Windows

Після установки Windows Server 2008 x64, встановіть останній сервісний пакет оновлень (Service Pack), обов'язково встановіть виходили після сервісного пакета виправлення безпеки і останні версії драйверів і апаратних прошивок.

Налаштування файлу підкачки Windows

Розмір файлу підкачки Windows у разі розміщення на сервері тільки SQL Server не грає такої важливої ролі, як в типових сценаріях. SQL Server намагається уникати перегортання. Розмір файлу підкачки можна вибрати невеликим, щоб його було достатньо для формування міні-дампів. Якщо сервер також обслуговує програми, які потребують у файлі підкачки, розмір його варто вибирати в півтора рази більше, ніж розмір фізичної пам'яті сервера, але не більше 50Гб. У разі монопольного володіння ресурсами SQL Server, розміщувати файл підкачки можна на тому ж диску, де базується операційна система. Мінімальна активність роботи з файлом підкачки не буде створювати конкуренцію іншим завданням. У Windows Server 2003 є кілька пропонованих варіантів налаштування файлу підкачки, він може налаштовуватися жорстко, може бути відсутнім взагалі або його розмір буде управлятися операційною системою. В останньому випадку, Windows створить файл підкачки, розмір якого на один Мегабайт буде перевищувати розмір фізичної пам'яті сервера. Такий вибір обумовлений тим, що рівно стільки місця необхідно для створення повного дампа пам'яті після аварії з видачею "синього екрану". Якщо вас такий дамп не цікавить, можна взяти управління розміром файлу підкачки у свої руки.

Настроювання розміру системних журналів

Розміри системних журналів варто вибирати такими, щоб їх відкриття для аналізу або копіювання по мережі виконувалося за прийнятний час.

Настроювання локальних політик Windows

Обмежте розмір системних дампів фізичної пам'яті розміром 64 Гб, великий розмір дампа непрактичний з точки зору налагодження. Можна оптимізувати управління пам'яттю і істотно скоротити перегортання за допомогою установки локальної політики для користувача, від імені якого запускається служба SQL Server. Політика називається "Lock pages in memory", Розташовується вона у вузлі"User rights assignment"Локальних політик. Оболонку менеджера політик можна викликати з командного рядка, набравши там gpedit.msc і натиснувши Enter.

Ще однією корисною локальної користувача політикою є миттєва ініціалізація файлу даних: "Виконання завдань обслуговування томи” (Perform Volume Maintenance). Для файлів журналів ця політика застосовується. Однак, включення цієї політики хоч і дозволяє зробити процес створення файлу даних, його приріст або відновлення практично миттєвим, воно загрожує підвищенням ризиків безпеки, тому що ініціалізація не буде супроводжуватися перезаписом нових файлів або прирощує до них областей нулями. Тобто існує ризик, що розташована в цих областях інформація буде доступна для читання і до віддаленої раніше інформації зможуть отримати доступ неавторизовані учасники. Додаткову інформацію з безпеки цієї операції можна знайти у розділі SQL Server Books Online: "Ініціалізація файлів бази даних". Однією з альтернатив цьому методу, також дуже швидко дозволяє виконувати завдання створення та збільшення файлів, є розміщення файлів баз даних на "сирих" розділах (RAW).

Налаштування Панелі Управління Windows

Щоб виключити зниження продуктивності в режимі енергозбереження, в оснащенні "Електроживлення" (Power Options) Потрібно вибрати режим "Висока продуктивність" (High Performance). Варто також переконатися, що сервер ніколи не буде переключатися в сплячий режим.

На закладці "Візуальні ефекти" можна відключити витрачання процесорного часу на некритичні для роботи сервера ефекти, вибравши режим "Забезпечити найкращу швидкодію" (Adjust for best performance).

Налаштування конфігурації системи

Вимкніть контроль облікових записів UAC. Для цього натисніть кнопку "Пуск" (Start), у списку "Програми" (All Programs) перейдіть до папки "Адміністрування" (Administrative Tools) і запустіть утиліту "Конфігурація системи" (System Configuration). Відключити UAC можна на закладці "Сервіс" (Tools), вибравши зі списку коштів завдання: "Вимкніть контроль облікових записів UAC". Для застосування змін необхідна перезавантаження системи.

Налаштування кешування введення-виведення

Для включення кешування операційною системою операцій введення-виведення логічних дисків скористайтеся оснасткою Disk Management або Device Manager, перейшовши в ній у вузол Disk Drives. Для кожного настроюваного пристрою логічного диска потрібно вибрати Властивості (Properties) і перейти на закладку Policies. Для індивідуального налаштування дисків краще підходить оснащення Disk Management, там настройки виконуються з властивостей дисків, які викликаються в графічній, нижній частині вікна оснащення. Включення чекбокса "Enable write caching on the disk"Дозволяє кешування запису на диск. Після позначки цього чекбокса стає доступний для позначки другий чекбокс:"Enable advanced performance". Включення обох чекбоксів не тільки дозволяє кешування, а й змушує операційну систему вилучати з запитів вводу-виводу команди прямого запису на диск і скидання дискового кеша. Не рекомендується включати ці чекбокси якщо апаратні кеші не мають захисту від втрати електроживлення.

Якщо логічний диск представлений зовнішнім дисковим масивом, який оснащений апаратним кешем з батарейкою, можна не помічати другий чекбокс: "Enable advanced performance". Проте, позначка цього чекбокса може підвищити продуктивність запису в журнал транзакцій.

Для вступу в силу змін параметрів кеша дисків перезавантаження сервера не вимагається.

Налаштування параметрів мережевих плат

У вікні Local Area Connection Properties майстра Network Connections панелі керування Windows можна викликати вікно параметрів мережевої плати, якщо натиснути кнопку Configure. У цьому вікні на закладці Advanced перераховані кілька параметрів, деякі з них можуть істотно впливати на продуктивність обміну даними по мережі.

Link Speed and Duplex

Кращим рішенням найчастіше є узгоджений вибір повнодуплексного режиму зв'язку у властивостях мережевої плати і у властивостях порту мережевого комутатора / концентратора. Це не означає, що вибір автоматичної підстроювання там і тут буде працювати гірше, просто історія пам'ятає такі випадки …

Існує ще ряд поширених параметрів, налаштування яких може допомогти підняти продуктивність мережевого інтерфейсу (наприклад, Receive Buffers, Coalesce Buffers, Offload features і т.п.). Щоб видерти вірні значення для подібних параметрів, зверніться до документації виробника мережевої плати.

Для того щоб виключити можливість відключення мережевого інтерфейсу в цілях оптимізації енергоспоживання сервера, стоїть на закладці Power Management прибрати позначку чекбокса "Allow the computer to turn off this device to save power“.

Відключення невикористовуваних протоколів

Для того щоб прибрати незначну додаткове навантаження, створювану для обслуговування невикористовуваних мережевих протоколів, пропонується відключити або деінсталювати такі протоколи. Наприклад, першим кандидатом на відключення є TCP/IPv6, в силу поки що своєї малої поширеності. Зробити це можна у вікні Local Area Connection Properties майстра Network Connections панелі керування Windows.

SQL Server також використовує за замовчуванням декілька протоколів, відключити зайві з них дозволяє оснащення SQL Server Configuration Manager, в якій протоколи перераховані у вузлі "Мережева конфігурація SQL Server”.

У більшості випадків і у властивостях мережного інтерфейсу і в протоколах SQL Server досить обмежиться використанням протоколу TCP/IPv4.

Якщо ж потрібно підтримувати декілька протоколів, варто поставити пріоритети використання протоколів та їх провайдерів у вікні Advanced Settings майстра Network Connections.

Налаштування антивірусного програмного забезпечення

У тих випадках, коли операційне середовище або бізнес – вимоги змушують встановлювати на обслуговуючому служби SQL Server сервері антивірусне програмне забезпечення, налаштовувати антивірусне ПЗ потрібно так, щоб оновлення вірусних сигнатур і сканування системи відбувалося під час низької активності SQL Server.

Необхідно налаштувати виняток сканування файлів баз даних, журналів транзакцій і резервних копій, які типово мають дозволи: mdf, ldf, ndf, bak і trn. Це дозволить запобігти пошкодженню цих файлів при спробі з боку SQL Server їх відкриття, коли вони вже відкриті для перевірки антивірусним ПЗ. Крім того, необхідно вжити заходів для захисту каталогів повнотекстового пошуку та містять дані Analysis Services від ушкоджень, пов'язаних з активністю антивірусного програмного забезпечення. Виключіть також папку журналів SQL Server (MSSQLLog), журнал помилок відкрито постійно і в нього може виводитися багато подій. Якщо антивірусне ПЗ планується використовувати спільно з SQL Server працює в кластері, потрібно виключити сканування кворум – диска і каталогу: "c: WindowsCluster". Для отримання більш докладної інформації про вимоги до налаштувань антивірусного ПЗ зверніться до статті бази знань Майкрософт: Guidelines for choosing antivirus software to run on the computers that are running SQL Server.

Щоб уникнути втручання в роботу служб SQL Server і для запобігання збільшення часу їх запуску з-за сканування антивірусним ПЗ, рекомендується виключити з перевірки служби SQL Server. Найбільш поширеними у використанні є служби: sqlservr.exe, sqlagent.exe, sqlbrowser.exe і sqlwriter.exe

Управління пам'яттю в SQL Server

SQL Server, при необхідності, намагається дістати всю доступну йому оперативну пам'ять комп'ютера. Якщо встановлено кілька екземплярів SQL Server, імовірна конкуренція за ресурси пам'яті між менеджерами динамічної пам'яті кожного екземпляра. До появи в SQL Server 2008 засобів регулювання ресурсів, єдиною можливістю зниження конкуренції за пам'ять між різними примірниками була установка в глобальної конфігурації екземпляра SQL Server обмежень для максимального і мінімального обсягів використовуваної фізичної пам'яті. Крім того, доброю практикою вважається залишати не менше 10% оперативної пам'яті для потреб операційної системи.

Налаштування параметрів глобальної конфігурації SQL Server

affinity I/O mask

Цей параметр глобальної конфігурації дозволяє ізолювати обслуговування введення-виведення даного екземпляра SQL Server одним або декількома ядрами процесорів. Прив'язка введення-виведення дозволяє закріпити за введенням-виведенням фіксоване число планувальників. За замовчуванням і в більшості випадків маску прив'язки процесорів до введення-висновку встановлюють в нуль, дозволяючи SQLOS самої управляти подібної прив'язкою. Найчастіше це дозволяє отримати максимальну продуктивність, однак, для деяких типів робочого навантаження (яким характерні високі норми введення-виведення), продуктивність може бути вище, якщо жорстко прив'язати введення-виведення до одного або більше ядра. Наприклад, можна виділити одне ядро для введення-виведення, як це показано нижче, у прикладі сценарію для 16-ти ядерного сервера:


Не обов'язково для введення-виведення виділяти найперше по порядку ядро. Це може бути ядро з того NUMA-вузла, в домені близькості якого знаходиться адаптер введення-виведення.

network packet size

Наступним параметром глобальної конфігурації, зміна якого може в деяких випадках сприяти підвищенню продуктивності додатків баз даних, є "network packet size (B)". Збільшення розміру мережевого пакету до 8192 Байт може дозволити домогтися виграшу за рахунок кращого вирівнювання розміру пакета з розміром сторінки SQL Server, яка дорівнює 8 КБ. Однак, слід враховувати, що значення цього параметра за замовчуванням (4096Б), є найкращим для більшості додатків. Тільки тестування дозволить вибрати для цього параметра оптимальну установку.

Налаштування ключів системного реєстру Windows


UseLargePages

Включення підтримки великих сторінок може виявитися корисним для тих систем з SQL Server x64, які оснащення великим об'ємом оперативної пам'яті. Великі сторінки сприяють підвищенню продуктивності за рахунок збільшення TLB буфера процесора. Великі сторінки можуть використовуватися для буферного пулу і для кодових сторінок SQL Server. Для включення великих сторінок на рівні SQL Server потрібно задати прапор трасування -T834 (Це можна зробити через стартові параметри). Крім того, слід додати ключ системного реєстру. Вміст reg-файлу для додавання показано нижче:

 


Для вступу змін в силу потрібно перезавантаження системи.

LargeSystemCache / Size і IdleFrom0Delay

Встановивши значення LargeSystemCache в 0, тим самим встановлюється стандартний розмір кешу файлової системи, який дорівнює приблизно 8 Мб, максимальний розмір кешу файлової системи не буде перевищувати 512 Мб. Ця установка рекомендується для таких програм, які здійснюють кешування пам'яті самостійно, і до таких програм відноситься SQL Server. Нижче показаний reg-файлу для завдання такої установки:


Те, наскільки агресивно буде займатися фізична пам'ять під завдання файлового кеша, залежить від установки наступного ключа реєстру:


Можливі значення: 1-мляво, 2-збалансовано, 3-агресивно. Для установок з малим навантаженням на файловий кеш, цілком достатньо 1 .. Інші установки властиві файлових серверів різного масштабу, втім, для тестів TPC-E часто вибирають 3.

Вийти з режиму економії енергії, який теж може уповільнювати деякі операції, можна за допомогою ключа IdleFrom0Delay. Зробити це можна так:


IoPageLockLimit, DisablePagingExecutive і DontVerifyRandomDrivers

В одному з документів по оптимізації мені попадалася наступна формула: "IoPageLockLimit = (RAMMb – 65) * 1024". За допомогою ключа IoPageLockLimit можна вплинути на те, скільки байт система буде читати або писати на логічекскій диск за один раз.

Коли оперативної пам'яті предостатньо, за допомогою установки DisablePagingExecutive можна не дозволяти SQL Server витісняти в файл підкачки компоненти драйверів привілейованого і непривілейованого режимів, як і компоненти самого ядра ОС. Установка DontVerifyRandomDrivers в одиницю дозволяє заощадити кілька процесорних циклів за рахунок відключення налагоджувальної перевірки драйверів.

Ось як можуть виглядати значення цих ключів на практиці:


CountOperations

Параметр CountOperations дозволяє відключити збір даних за деякими лічильників продуктивності, які відносяться до запитів вводу-виводу дискової підсистеми і мережевих інтерфейсів. Щоб це зробити, потрібно в ключі системного реєстру "I / O System" встановити значення 0, щоб наступного параметра:


Необхідно перезавантажити систему.

NumberOfRequests і MaximumSGList

Ця пара ключів системного реєстру призначена для управління драйвером мініпорта у момент ініціалізації останнього.

Збільшуючи значення NumberOfRequests може сприяти підвищенню продуктивності обслуговування в Windows запитів дискового введення-виведення, адресованих логічним дискам, і буває ефективно тільки якщо ці логічні диски є апаратними RAID-масивами, які володіють можливістю розпаралелювання запитів вводу-виводу. Рекомендоване значення можна знайти в документації виробника FC-адаптера або RAID-контролера. Збільшувати значення потрібно обережно, тому що велике значення може призвести навіть до відмови системи. Наприклад, для HBA адаптера QLogic, керованого драйвером "QLogic Fibre Channel Miniport Driver ", в документації не рекомендується перевищувати значення 150. Нове значення набуває чинності після перезавантаження системи або, в деяких випадках, досить перезапустити адаптер (заблокувати / розблокувати).

Ключ MaximumSGList дозволяє змінювати використовується за умовчанням розмір пакета передачі даних по шині (64Кб), яке актуальне для команд інтерфейсу SCSI. Якщо встановити значення 255, то розмір переданого однією командою обсягу даних буде дорівнювати мегабайту. Сучасні адаптери вміють поєднувати до 265 сегментів даних, кожен по 4096 байт, що в сумі може дати розмір однієї передачі до 1048576 байт. Цей параметр широко використовується для підвищення ефективності використання стрічкових накопичувачів, а також для оптимізацій таких завдань SQL Server, які оперують великими запитами уведення-виведення, наприклад, резервне копіювання і відновлення.

В описах тесів TPC-C зустрічається установка обох ключів в значення 255, як це показано в прикладі нижче:


IdlePrioritySupported

Windows Server 2008 вміє враховувати пріоритет запиту вводу-виводу і використовує його для обслуговування фонових завдань. Однак, якщо система обслуговує тільки одне застосування, подібне SQL Server, і це додаток саме піклується про пріоритети запитів вводу-виводу, відволікання системних ресурсів на пріоритезацію стає зайвим. Відучити Windows від обслуговування пріоритетів запитів можна внісши зміни в системний реєстр для кожного з вибраних дисків, як це показано на прикладі використання ключа IdlePrioritySupported:


Ключ Classpnp швидше за все доведеться додати. Подібні тонкі налаштування були мною помічені у IBM в тестах TPC-E.

TCPWindowSize

У Windows 2008 цей ключ більше не використовується. У більш ранніх версіях збільшення розміру вікна може підвищити ефективність мережного трафіку. Рекомендоване значення (64240) для ключа TCPWindowSize представлено нижче:


Якщо розмір вікна в 64240 Байт теж обмежує продуктивність мережі, існує можливість збільшення розміру вікна до одного Гігабайта. Ключ реєстру TCP1323Opts дозволяє динамічне мастабірованіе вікна. Рекомендованих значенням для цього ключа є: 0x3.

Для подальшої оптимізації ефективності мережевих інтерфейсів спробуйте використовувати наступні ключі системного реєстру Windows, опис яких легко знайти в Базі Знань Майкрософт: TCPMaxConnectRetransmissions, TCPMaxDataRetransmissions, TCPTimedWaitDelay, MaxUserPort, MaxHashTableSize, NumTcbTablePartitions, TcpAckFrequenc, MTU і EnablePMTUDiscovery.

Рекомендовані до відключення служби

Application Management Alerter, Clipbook, Computer Browser, Distributed file system, Distributed link tracking client, Error Reporting Service, Fax Service, File Replication, Help and Support HTTP SSL, License Logging, Messenger, Portable Media Serial Number Service, Shell Hardware Detection, Windows Audio, Wireless Configuration.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*