적용 대상: SQL Server 2016(13.x) 이상 버전
Resource Governor를 사용하여 SQL Server Machine Learning Services에서 Python 및 R 워크로드를 위해 CPU, 물리적 IO 및 메모리 리소스 할당을 관리하는 방법을 알아봅니다.
Python 및 R의 기계 학습 알고리즘은 일반적으로 컴퓨팅 집약적입니다. 워크로드 우선 순위에 따라 Machine Learning Services에 사용 가능한 리소스를 늘리거나 줄여야 할 수 있습니다.
자세한 내용은 Resource Governor를 참조하세요.
참고
Resource Governor는 Enterprise Edition 기능입니다.
기본 할당
기본적으로 Machine Learning을 위한 외부 스크립트 런타임은 총 컴퓨터 메모리의 20%를 초과하지 않도록 제한됩니다. 시스템에 따라 달라지지만, 일반적으로 여러 데이터 행에 대한 모델 학습 또는 예측과 같은 심각한 Machine Learning 작업에서는 이러한 제한이 충분하지 않을 수 있습니다.
Resource Governor를 사용하여 리소스 관리
기본적으로 외부 프로세스는 로컬 서버에서 총 호스트 메모리를 최대 20%까지 사용합니다. 기본 리소스 풀을 수정하여 서버 전체에 적용되는 변경을 수행할 수 있으며, 그러면 R 및 Python 프로세스는 외부 프로세스에 사용할 수 있도록 설정한 용량을 사용하게 됩니다.
선택적으로 특정 프로그램이나 호스트로부터 시작되는 요청 또는 사용자가 제공한 다른 기준에 따라 리소스 할당을 결정하기 위해 워크로드 그룹 및 분류자가 연결된 사용자 지정 외부 리소스 풀을 만들 수 있습니다. 외부 리소스 풀은 데이터베이스 엔진 외부의 R 및 Python 프로세스 관리를 돕기 위해 SQL Server 2016(13.x)에 도입된 리소스 풀 유형입니다.
리소스 관리를 사용하도록 설정합니다(기본적으로 해제되어 있음).
CREATE EXTERNAL RESOURCE POOL를 실행하여 리소스 풀을 생성하고 구성한 다음, ALTER RESOURCE GOVERNOR를 실행하여 이를 구현합니다.
학습과 채점 사이의 세부적인 할당을 위한 워크로드 그룹을 만듭니다.
외부 처리를 위해 호출을 가로채는 분류자를 만듭니다.
생성한 개체를 사용하여 쿼리 및 프로시저를 실행합니다.
연습에 대한 단계별 지침은 SQL Server Machine Learning Services용 리소스 풀 만들기를 참조하세요.
용어 및 일반 개념에 대한 소개는 Resource Governor 리소스 풀을 참조하세요.
리소스 관리 중인 프로세스
외부 리소스 풀을 사용하여 데이터베이스 엔진 인스턴스에서 다음과 같은 실행 파일에 사용되는 리소스를 관리합니다.
- SQL Server에서 로컬로 호출되거나 SQL Server를 원격 계산 컨텍스트로 하여 원격으로 호출되는 경우의 Rterm.exe
- SQL Server에서 로컬로 호출되거나 SQL Server를 원격 컴퓨팅 컨텍스트로 하여 원격으로 호출되는 경우의 Python.exe
- BxlServer.exe 및 위성 프로세스
- 실행 패드에서 시작된 위성 프로세스(예: PythonLauncher.dll)
참고
Resource Governor를 사용한 Launchpad 서비스의 직접 관리는 지원되지 않습니다. 실행 패드는 Microsoft에서 제공되는 시작 관리자만 호스트할 수 있는 신뢰할 수 있는 서비스입니다. 신뢰할 수 있는 시작 관리자는 과도한 리소스 사용을 피하기 위해 명시적으로 구성됩니다.