适用于:SQL Server 2016 (13.x) 及更高版本
了解如何使用 Resource Governor 管理 SQL Server 机器学习服务中 Python 和 R 工作负载的 CPU、物理 IO 和内存资源分配。
Python 和 R 中的机器学习算法需要大量计算。 根据工作负载优先级,你可能需要增加或减少可用于机器学习服务的资源。
有关更多常规信息,请参阅 Resource Governor。
注意
Resource Governor 是企业版功能。
默认分配
默认情况下,机器学习的外部脚本运行时限制为不超过总计算机内存的 20%。 这取决于系统,但一般情况下,你可能会发现,此限制不足以应对繁重的机器学习任务,例如定型模型或预测多行数据。
使用 Resource Governor 管理资源
默认情况下,外部进程最多可使用本地服务器上总主机内存的 20%。 你可以修改默认资源池,以进行对整个服务器生效的更改;R 和 Python 进程将使用你为外部进程提供的任何资源。
另外,还可以使用关联工作负载组和分类器创建自定义外部资源池,以确定对源自特定程序、主机或所提供的其他条件的请求的资源分配。 外部资源池是 SQL Server 2016 (13.x) 中引入的一种资源池,可帮助管理数据库引擎外部的 R 和 Python 进程。
启用资源调控(默认情况下处于关闭状态)。
运行 CREATE EXTERNAL RESOURCE POOL 以创建和配置资源池,然后 ALTER RESOURCE GOVERNOR 实现它。
创建一个工作负载组,以进行精细分配,例如在训练和评分之间。
创建分类器以截获用于外部处理的调用。
使用所创建的对象执行查询和过程。
如需操作演练,请参阅 为 SQL Server 机器学习服务创建资源池 中的分步说明。
有关术语和一般概念的简介,请参阅 Resource Governor 资源池。
资源调控下的进程
可使用外部资源池来管理以下数据库引擎实例上可执行文件使用的资源 :
- Rterm.exe - 在本地由 SQL Server 调用,或在以 SQL Server 作为远程计算上下文时被远程调用
- Python.exe 在本地由 SQL Server 调用时,或在 SQL Server 作为远程计算上下文时被远程调用
- BxlServer.exe 和附属进程
- 由 Launchpad 启动的卫星进程,例如 PythonLauncher.dll
注意
不支持使用 Resource Governor 直接管理启动板服务。 启动板是一项受信任的服务,它只能托管 Microsoft 提供的启动器。 受信任的启动器经显式配置,以避免消耗过多的资源。