Обмежте максимальне використання процесора SQL SERVER з WSRM


10

У мене є фізичний сервер, на якому працює один екземпляр SQL Server.

Я зауважую, що досить часто цей сервер працює на 100% використанні процесора.

Моя ІТ-команда з цього приводу не задоволена, і запропонувала нам залишити 2 з 32 ядер для ОС.

Це чудово, зараз максимальний пік використання трохи менше 90%. Крім того, про повільне пошуку даних у різних користувачів більше не повідомляється.

Чи є якась причина НЕ використовувати таким чином WSRM (Windows System Resource Manager) - замість керування ресурсами SQL?


Ви дійсно хочете використовувати весь процесор? Збереження пари ядер для ОС здається доцільним, чи не так? На моїй робочій станції, якщо я використовую всі сердечники протягом деякого числа хрускіт, моя машина заточується. Я завжди тримаю кілька ядер безкоштовно. Це не буде хорошою практикою на машині, присвяченій SQL Server?
ManInMoon

Яке навантаження працює на цьому сервері? Який тип процесу використовує 100% ЦП? Це OLTP чи аналітика чи графік чи?
Макс Вернон

@Forrest Коли ви говорите про налаштування - ви маєте на увазі сам SQL Server - або запити / структуру таблиці? Якщо ви маєте на увазі SQL Server, будь ласка, дайте мені посилання на те, що слід подивитися. Якщо запити / таблиці, то я оптимізую їх, коли можу, але деякі користувачі менш обізнані!
ManInMoon

Відповіді:


14

Чи є якась причина НЕ використовувати підхід, визначений вами? Абсолютно.

Уявіть, що ви купили автомобіль - автомобіль, який при попаданні 50MPH двигун починає перегріватися. Чи буде ваша реакція на цю ситуацію штучним обмеженням автомобіля до 49 МПГ, або щоб з'ясувати, у чому винна мотор?

Чому слід обмежувати свій автомобіль 49MPH? Виробник заявив, що він може їхати так само швидко, як 80MPH - ви хочете їхати на своєму автомобілі швидко, тому хочете доїхати до такої швидкості - якби не прокляття цього перегріву.

Автомобіль, який ви купили, теж був дуже-дуже дорогим. Кожен циліндр двигуна потрібно використовувати максимум, щоб ви не витрачали ці гроші!

Штучно обмежуючи доступ серверів SQL до процесора, ви не вистачаєте на продуктивність. Можливо, ви тимчасово вирішили проблеми з продуктивністю, переконавшись, що ЦП доступний для ОС, але ви не відповіли на справжнє запитання - Чому SQL Server використовує 100% ЦП?

Моя порада така:

З’ясуйте, що таке справжнє питання, і виправте це. Не охоплюйте питання тим, що фактично є хитрощі. Проблема НЕВІДКЛЮЧИТЬСЯ та вдарить вас обличчям вниз по лінії, коли завантаження сервера, природно, збільшується зі зростанням.

Як тимчасове виправлення , регулятор ресурсів може бути використаний для зменшення використовуваного центрального процесора, поки ви не знайдете реальну проблему.


11

Ерік Дарлінг згадав найбільшу практичну причину не використовувати WSRM у коментарі до вашого питання:

... немає взаємного обмеження використання процесора в інших процесах. SQL Server може не використовувати ці два ядра, але інші речі можуть використовувати інші 30 SQL Server. Це справді гадюка.

Якщо це працює для вас, тоді дотримуйтесь цього - ми всі зайняті, і ви можете витратити стільки часу на будь-яку проблему. Ідеальним рішенням було б усунути основні запити / питання , які є рушійною силою процесора до точки призначених для користувача помітні проблеми (яка охоплює Джорджа в його чудовою відповідь ).

Ерік продовжує говорити

Крім того, ви платите за них ліцензування SQL Server.

З точки зору бізнесу, це, мабуть, найгірша частина угоди WSRM - ви платите за основну ліцензію за 2 ядра, які явно не використовуються. На момент написання цього повідомлення на столі залишилось $ 3k або $ 14k (залежно від Standard vs Enterprise).

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