Управление рабочими нагрузками Python и R с помощью Resource Governor в службах машинного обучения SQL Server

Область применения: SQL Server 2016 (13.x) и более поздних версий

Узнайте, как использовать Resource Governor для управления ресурсами ЦП, физическими операциями ввода-вывода и выделением ресурсов памяти для рабочих нагрузок Python и R в службах машинного обучения SQL Server.

Алгоритмы машинного обучения в Python и R ресурсоемки. В зависимости от приоритетов рабочих нагрузок может потребоваться увеличить или уменьшить объем доступных ресурсов для служб машинного обучения.

Дополнительные сведения см. в разделе Resource Governor.

Примечание.

Resource Governor доступен в составе выпуска Enterprise.

Выделения по умолчанию

По умолчанию объем памяти, выделяемый для внешних сред выполнения сценариев машинного обучения, ограничен 20% от общего объема памяти компьютера. Иногда это зависит от системы, но в общем случае это ограничение не подходит для серьезных задач машинного обучения, таких как обучение моделей или прогнозирование на основе большого числа строк данных.

Управление ресурсами с помощью Resource Governor

По умолчанию внешние процессы используют до 20% общего объема памяти узла на локальном сервере. Пул ресурсов по умолчанию можно изменить, чтобы внести изменения на уровне сервера, а процессы R и Python будут использовать любую емкость, доступную для внешних процессов.

При необходимости можно создать настраиваемые внешние пулы ресурсов со связанными группами рабочих нагрузок и классификаторами, чтобы определить выделение ресурсов для запросов, исходящих от конкретных программ или узлов, или в соответствии с другими указанными условиями. Внешний пул ресурсов — это тип пула ресурсов, представленный в SQL Server 2016 (13.x), который помогает управлять процессами R и Python вне ядра СУБД.

  1. Включите управление ресурсами (по умолчанию оно отключено).

  2. Выполните инструкцию CREATE EXTERNAL RESOURCE POOL, чтобы создать и настроить пул ресурсов, а затем инструкцию ALTER RESOURCE GOVERNOR, чтобы реализовать его.

  3. Создайте группу рабочей нагрузки для детализированного выделения, например, между обработкой и оценкой.

  4. Создайте классификатор для перехвата вызовов для внешней обработки.

  5. Выполняйте запросы и процедуры с помощью созданных объектов.

Пошаговые инструкции см. в статье Создание пула ресурсов для Служб машинного обучения SQL Server.

Общие сведения о терминологии и основных понятиях см. в разделе Пул ресурсов Resource Governor.

Процессы, для которых применяется управление ресурсами

С помощью внешнего пула ресурсов вы можете управлять ресурсами, используемыми следующими исполняемыми файлами в экземпляре ядра СУБД:

  • Rterm.exe при вызове локально из SQL Server или при удаленном вызове из SQL Server в качестве удаленного контекста вычислений;
  • Python.exe при вызове локально из SQL Server или при удаленном вызове из SQL Server в качестве удаленного контекста вычислений;
  • BxlServer.exe и вспомогательными процессами;
  • вспомогательными процессами, запущенными с помощью панели запуска, например, PythonLauncher.dll;

Примечание.

Прямое управление службой панели запуска с помощью Resource Governor не поддерживается. Панель запуска — это доверенная служба, которая может размещать только те запуски, которые предоставляются корпорацией Майкрософт. Доверенные средства запуска настраиваются явным образом, чтобы избежать чрезмерного использования ресурсов.

Следующие шаги