Best Practice for Tuning Microsoft SQL Server on HP Proliant DL980
Очень часто компании, которые имеют деньги, приобретают высокопроизводительные и дорогие сервера для MSSQLServer, но используют их не более 10%. Причины могут быть разные. В итоге сервера простаивают, потребляют энергию, а также могут происходить “странные” события: вроде дорогой сервер, а имеет проблемы. Источником данных проблем является то, что производитель создает режимы энергопотребления, которые включаются, когда сервер не нагружен. Результатом данного режима для MSSQLServerмогут быть совсем разные.
В данной статье хотелось бы рассказать о проблеме с которой пришлось столкнуться, а также сделать вольный перевод BestPracticeforTuningMicrosoftSQLServerontheHPProliantDL980. Итак, сначала часть перевода данной статьи.
Я б хотел остановиться именно на настройках оборудования, без конфигурирования MSSQLServer, поэтому будет перевод только части.
Настройки BIOS
Для входа в BIOSнеобходимо при загрузке сервера нажать F9. Ниже будут представлены критические настройки, влияющие на производительность:
• System Options > Processor Options > Hyper-threading > Enable or Disable (see section on Hyper-threading below)
• Power Management Options > HP Power Profile > Custom • Power Management Options > HP Power Regulator > OS Control • Power Management Options > Advanced Power Management Options > Minimum Processor Idle Power State > C1E (reduces power when possible, for performance + power savings) or NO C-states (when performance is highest priority; power saving functionality is ignored) • Advanced Options > Advanced Performance and Tuning Options > HW Prefetch > Enabled • Advanced Options > Advanced Performance and Tuning Options > Adjacent Sector Prefetch > Enabled • Advanced Options > Advanced System ROM Options > Address Mode 44-bit > Enabled (this setting is for Windows Server 2008 R2 only, and mandatory if ≥ 1TB RAM. On Windows Server 2008 SP2, this setting should remain Disabled, since that OS uses a 40-bit address mode.) По поводу Hyper-thereadingмогу сказать, что по умолчанию желательно выключить его, включать его стоит тогда, когда это рекомендовано вендором ПО или проведено тестирование с полученными хорошими результатами.
OS/ОС
В документы описаны общие настройки ОС для сервера, так и некоторые особенности для ОС Windows 2008 и Windows2008R2, Windows 2012. Необходимо учесть количество поддерживаемых ядер каждой ОС: Windows 2008 64 ядер, Windows2008R2 256 ядер, Windows 2012 640 ядер.
Настройки для Windowвсех версий:· Не запускать ОС с параметром /debug.· Отключить все ненужные сервисы Windows Server 2008 SP2 иWindows Server 2012 /R2
Некоторые настройки ОС влияют на производительность. Ниже предоставлены рекомендации HP, которые ссылаются на рекомендации Майкрософт.
Поменятьнастройкивреестре:
• Allocate PFN database sparsely and with small pages:
\HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\ Memory Management\LargePageMinimum = REG_DWORD 0xffffffff
• Verifier.sys - Disable random verification of drivers for debugging:
(normally disabled by default, but verify; performance is adversely affected if enabled) \HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\ Memory Management\DontVerifyRandomDrivers = REG_DWORD 0x00000001
• Disable PartMgr/FltMgr/VolMgr Ioctl counters: (implement only if no applications use these counters) \HKLM\SYSTEM\CurrentControlSet\Services\PartMgr\ EnableCounterForIoctl = REG_DWORD 0x0
• Disable NTFS creation of 8.3 filenames: (make sure this is compatible with applications) \HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\ NtfsDisable8dot3NameCreation = REG_DWORD 0x00000001
Параметры энергопитания, необходимо выставить «Высокая производительность»:
1. Выберите Start > Control Panel.
2. Выберите View > Large Icons.
3. Запустите Power Options.
4. Выбирите High Performance.
Настройки сети
Сетевой SQLтрафик обычно небольшой, обычно при максимальных нагрузках на mssqlнагрузка на сетевые адаптеры не полная. HPрекомендует не превышать 15000 пакетов в секунду на гигабитный адаптер. Вы может использовать NICteamкак опцию, но не как средство повышения производительности.
Настройкаreceive side scalling (RSS)
RSSсредство для доставки сетевого траффика с одиночного сетевого адаптера на различные CPUсохраняя последовательность доставки TCPпакетов. Это позволяет улучшить масштабируемость посредством изменения количество и диапазон процессоров для сетевого адаптера.
RSSмасштабирование включено по умолчанию в WindowsServer2008R2 и в WindowsServer 2012/R2. Для возможности работы с RSS, сетевые драйвера должны быть написаны с учетом работы с RSS. Подробности работы RSSи о количестве поддерживаемых CPUв ОС описаны в документации к ОС на сайтах Майкрософт.
Если по какой-то причине RSSотключен, то вы можете включить следующей командой:
netsh interface tcp set global rss=enabled
Либо, для большинства драйверов можно управлять настройками через графический интерфейс, откройте WindowsDeviceManager, во вкладке AdvancedPropertiesсетевого интерфейса, выполните следующие шаги:
1. Open the Device Manager and expand Network Adapters.
2. Right-click the adapter you want to configure, and select Properties.
3. On the Advanced tab, locate the Receive-side Scaling property and verify that the value is enabled. If not, enable it.
4. Click OK and exit the Device Manager.
Включение опции для уменьшения нагрузки обработки
Оригинальное название данной опции ChecksumOffloads. Опции ChecksumOffloads, TCPSegmentations(LargeSend) иInterruptCoalescingесть во всех современных сетевых адаптерах и предназначены для уменьшения нагрузки на процессоры и увеличения пропускной способности сети.
Чтобы проверить, что опция ChecksumOffloadвключена для отправки\получения TCP\IPпротокола сетевого адаптера, сделайте следующие шаги:
1. Откройте Device Manager and найдитеNetwork Adapters.
2. Правая кнопка мыши на нужном адаптера, выберите Properties.
3. Вкладка Advancedtab, выберите свойство ChecksumOffloadи проверьте, что установлено значение Tx/RxTCP/IPChecksum.
4. Нажмите OKandи выйдете из DeviceManager.
5. Если были изменены настройки, то необходим рестарт сервера.
На этом настройки оборудования закончены, я упомянул только те, которые считаю наиболее важные и которые использую. В статье вы найдете дополнительную информацию и настройки. Там же есть настройки MSSQLServer, по их бы не стал применять, особенно включение всех указанных флагов, а изначально протестировать или иметь конкретные проблемы.
Из опыта работ с серверами DL 980, и проблемы которая была:
Был куплен данный сервер, установлен MSSQLServer2008R2 в кластерном режиме. Использование данного сервера было меньше 10 процентов от его возможности. После некоторого времени стали появляться странные проблемы в работе MSSQLServer,а именно ошибки 605 и 824.
Так же в SystemLogоперационной системы было много ошибок вида:
Уровень – Warning, Код события -47
Текстпредупреждения:
A corrected hardware error has occurred.
Component: Memory
Error Source: Corrected Machine Check
The details view of this entry contains further information.
После открытия кейса в HP, были получен ответ:
Что данная ошибка появляется вследствие малой нагрузки на сервер, после этого сервера переходит в режим энергоэкономии, вследствие чего появляются такие сообщения.Для выключения энергоэкономии, необходимо поставить следующие настройки:
-> Minimum Processor Idle Power Package State -> No Package -> Minimum Processor Idle Power State -> No C-states После применения данных настроек, количество ошибок уменьшилось, но не исчезли совсем, что является в пределах нормы.
Подробно описано здесь.Удачных настроек Вам!