CREATE EXTERNAL RESOURCE POOL(Transact-SQL)
적용 대상: SQL Server 2016(13.x) 이상 버전
외부 프로세스에 대한 리소스를 정의하는 외부 풀을 만듭니다. 리소스 풀은 데이터베이스 엔진 인스턴스의 물리적 리소스(메모리 및 CPU)의 하위 집합을 나타냅니다. Resource Governor는 최대 64개의 리소스 풀에서 서버 리소스를 배포할 수 있습니다.
SQL Server 2016(13.x)의 R Services(In-Database)의 경우 외부 풀은 rterm.exe
, BxlServer.exe
및 이에 의해 생성된 기타 프로세스를 제어합니다.
Machine Learning Services에 대해 외부 풀은 rterm.exe
, python.exe
, BxlServer.exe
및 이에 의해 생성된 기타 프로세스를 제어합니다.
구문
CREATE EXTERNAL RESOURCE POOL pool_name
[ WITH (
[ MAX_CPU_PERCENT = value ]
[ [ , ] MAX_MEMORY_PERCENT = value ]
[ [ , ] MAX_PROCESSES = value ]
)
]
[ ; ]
<CPU_range_spec> ::=
{ CPU_ID | CPU_ID TO CPU_ID } [ ,...n ]
CREATE EXTERNAL RESOURCE POOL pool_name
[ WITH (
[ MAX_CPU_PERCENT = value ]
[ [ , ] AFFINITY CPU =
{
AUTO
| ( <cpu_range_spec> )
| NUMANODE = ( <NUMA_node_id> )
} ]
[ [ , ] MAX_MEMORY_PERCENT = value ]
[ [ , ] MAX_PROCESSES = value ]
)
]
[ ; ]
<CPU_range_spec> ::=
{ CPU_ID | CPU_ID TO CPU_ID } [ ,...n ]
인수
pool_name
외부 리소스 풀에 대한 사용자 정의 이름입니다. pool_name은 영숫자이며 최대 128자를 포함할 수 있습니다. 이 인수는 SQL Server 인스턴스 내에서 고유해야 하며 식별자에 대한 규칙을 따라야 합니다.
MAX_CPU_PERCENT =value
CPU 경합이 있을 때 외부 리소스 풀의 받을 수 있는 모든 요청의 최대 평균 CPU 대역폭입니다. 값은 정수입니다. 허용되는 value의 범위는 1에서 100까지입니다.
MAX_MEMORY_PERCENT =value
이 외부 리소스 풀의 요청에서 사용할 수 있는 총 서버 메모리를 지정합니다. 값은 정수입니다. 허용되는 value의 범위는 1에서 100까지입니다.
MAX_PROCESSES =value
외부 리소스 풀에 허용되는 프로세스의 최대 수입니다. 이후에 컴퓨터 리소스에 의해서만 바인딩되는 풀에 대한 무제한 임계값은 0입니다.
MAX_CPU_PERCENT =value
CPU 경합이 있을 때 외부 리소스 풀의 받을 수 있는 모든 요청의 최대 평균 CPU 대역폭입니다. 값은 정수입니다. 허용되는 value의 범위는 1에서 100까지입니다.
AFFINITY {CPU = AUTO | ( <CPU_range_spec>) | NUMANODE = (<NUMA_node_range_spec>)} 외부 리소스 풀을 특정 CPU에 연결합니다.
AFFINITY CPU = (<CPU_range_spec>)는 외부 리소스 풀을 지정된 CPU_ID로 식별된 SQL Server CPU에 매핑합니다.
AFFINITY NUMANODE = **(<NUMA_node_range_spec>)를 사용하는 경우 외부 리소스 풀의 선호도가 지정된 NUMA 노드 또는 노드 범위에 해당하는 SQL Server 물리적 CPU로 설정됩니다.
MAX_MEMORY_PERCENT =value
이 외부 리소스 풀의 요청에서 사용할 수 있는 총 서버 메모리를 지정합니다. 값은 정수입니다. 허용되는 value의 범위는 1에서 100까지입니다.
MAX_PROCESSES =value
외부 리소스 풀에 허용되는 프로세스의 최대 수입니다. 이후에 컴퓨터 리소스에 의해서만 바인딩되는 풀에 대한 무제한 임계값은 0입니다.
설명
데이터베이스 엔진은 ALTER RESOURCE GOVERNOR RECONFIGURE 문을 실행할 때 리소스 풀을 구현합니다.
리소스 풀에 대한 일반 정보는 Resource Governor 리소스 풀, sys.resource_governor_external_resource_pools(Transact-SQL) 및 sys.dm_resource_governor_external_resource_pool_affinity(Transact-SQL)를 참조하세요.
기계 학습에 사용된 외부 리소스 풀 관리 관련 정보는 SQL Server에서 기계 학습을 위한 리소스 거버넌스를 참조하세요.
사용 권한
CONTROL SERVER
권한이 필요합니다.
예제
외부 풀에서는 CPU 사용량을 75%로 제한했습니다. 최대 메모리는 컴퓨터에서 사용 가능한 메모리의 30%입니다.
CREATE EXTERNAL RESOURCE POOL ep_1
WITH (
MAX_CPU_PERCENT = 75
, MAX_MEMORY_PERCENT = 30
);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
CREATE EXTERNAL RESOURCE POOL ep_1
WITH (
MAX_CPU_PERCENT = 75
, AFFINITY CPU = AUTO
, MAX_MEMORY_PERCENT = 30
);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
참고 항목
- 외부 스크립트 설정 서버 구성 옵션
- sp_execute_external_script(Transact-SQL)
- ALTER EXTERNAL RESOURCE POOL(Transact-SQL)
- DROP EXTERNAL RESOURCE POOL(Transact-SQL)
- CREATE RESOURCE POOL(Transact-SQL)
- CREATE WORKLOAD GROUP(Transact-SQL)
- 리소스 관리자 리소스 풀
- sys.resource_governor_external_resource_pools(Transact-SQL)
- sys.dm_resource_governor_external_resource_pool_affinity(Transact-SQL)
- ALTER RESOURCE GOVERNOR(Transact-SQL)