Знакомство с регулятором ресурсов
Регулятор ресурсов представляет собой новую технологию SQL Server 2008, позволяющую управлять рабочей нагрузкой и ресурсами SQL Server с помощью настройки ограничений на использование ресурсов входящими запросами. В контексте регулятора ресурсов рабочая нагрузка представляет собой набор запросов приблизительно одинакового размера, которые могут и должны обрабатываться как единая сущность. Это не жесткое требование, но чем однообразнее выглядит шаблон использования ресурсов рабочей нагрузки, тем больше преимуществ можно извлечь из регулятора ресурсов. Ограничения на ресурсы можно перенастроить в режиме реального времени, при этом воздействие на выполняемую рабочую нагрузку остается минимальным.
В среде, имеющей несколько различных рабочих нагрузок на одном и том же сервере, регулятор ресурсов позволяет различать эти рабочие нагрузки и распределять общие ресурсы по мере запросов в зависимости от установленных ограничений. Такими ресурсами являются ЦП и память.
Регулятор ресурсов доступен только в SQL Server Enterprise Edition, Developer Edition и Evaluation Edition.
Типы проблем с ресурсами
В регуляторе ресурсов предусмотрено решение следующих типов проблем с ресурсами, которые часто встречаются в окружении базы данных.
Вышедшие из-под контроля запросы на сервере. В этом случае запрос с большими потребностями в ресурсах может захватить значительную часть ресурсов сервера или все ресурсы полностью.
Непредсказуемая рабочая нагрузка. В этом случае параллельные приложения, выполняющиеся на одном и том же сервере, представляют рабочие нагрузки различных размеров и типов. Например, два приложения с хранилищами данных или одновременная работа приложений с OLTP и хранилищем данных. Эти приложения не изолированы друг от друга, и итоговая конкуренция между ними за получение ресурсов приводит к непредсказуемой рабочей нагрузке.
Настройка приоритетов рабочей нагрузки. В данном варианте допускается более быстрая обработка одной рабочей нагрузки по сравнению с другими, либо гарантируется выполнение в конфликтных ситуациях с одновременным доступом к ресурсам. Регулятор ресурсов позволяет присваивать рабочим нагрузкам относительную важность.
Во всех предыдущих вариантах требуется возможность каким-либо способом разграничивать рабочие нагрузки. В регуляторе ресурсов предусмотрены следующие способы.
Возможность классификации входящих соединений и перенаправления рабочих нагрузок соответствующим группам.
Возможность отслеживания использования ресурсов по каждой рабочей нагрузке в группе.
Возможность объединения ресурсов в пул и установки зависимых от пула ограничений на загрузку ЦП и распределение памяти. Таким образом, вероятность возникновения вышедших из-под контроля запросов минимизируется или предотвращается полностью.
Возможность связывания сгруппированных рабочих нагрузок с конкретным пулом ресурсов.
Возможность идентификации рабочих нагрузок и установки для них приоритетов.
Ограничения регулятора ресурсов
В данной версии регулятора ресурсов имеются следующие ограничения.
Управление ресурсами ограничено компонентом SQL Server Database Engine. Использование регулятора ресурсов для служб Службы Analysis Services, Integration Services и Службы Reporting Services невозможно.
Наблюдение за рабочей нагрузкой и управление рабочими нагрузками между экземплярами SQL Server не предусмотрены.
Заданные ограничения применяются к пропускной способности ЦП и памяти, управляемым SQL Server.
Рабочие нагрузки OLTP. Управление рабочими нагрузками OLTP с помощью регулятора ресурсов возможно, но данные типы запросов, как правило, непродолжительные, не всегда находятся в ЦП настолько долго, чтобы к ним можно было применить средства управления пропускной способностью. Это может привести к искажению возвращаемых статистических данных по загрузке ЦП.