CREATE RESOURCE POOL(Transact-SQL)
SQL Server에서 리소스 관리자 리소스 풀을 만듭니다. 리소스 풀은 데이터베이스 엔진 인스턴스의 물리적 리소스(메모리, CPU 및 IO)의 하위 집합을 나타냅니다. 데이터베이스 관리자는 리소스 관리자를 사용하여 서버 리소스를 최대 64개의 리소스 풀에 배치할 수 있습니다. 일부 SQL Server 버전에서는 리소스 관리자를 사용할 수 없습니다. SQL Server 버전에서 지원하는 기능 목록을 보려면 SQL Server 2014 버전에서 지원하는 기능을 참조하십시오.
적용 대상: SQL Server(SQL Server 2008 - 현재 버전). |
구문
CREATE RESOURCE POOL pool_name
[ WITH
(
[ MIN_CPU_PERCENT = value ]
[ [ , ] MAX_CPU_PERCENT = value ]
[ [ , ] CAP_CPU_PERCENT = value ]
[ [ , ] AFFINITY {SCHEDULER =
AUTO | ( <scheduler_range_spec> )
| NUMANODE = ( <NUMA_node_range_spec> )} ]
[ [ , ] MIN_MEMORY_PERCENT = value ]
[ [ , ] MAX_MEMORY_PERCENT = value ]
[ [ , ] MIN_IOPS_PER_VOLUME = value ]
[ [ , ] MAX_IOPS_PER_VOLUME = value ]
)
]
[;]
<scheduler_range_spec> ::=
{ SCHED_ID | SCHED_ID TO SCHED_ID }[,…n]
<NUMA_node_range_spec> ::=
{ NUMA_node_ID | NUMA_node_ID TO NUMA_node_ID }[,…n]
인수
pool_name
리소스 풀에 대한 사용자 정의 이름입니다. pool_name은 영숫자로 최대 128자를 사용할 수 있으며 SQL Server 인스턴스 내에서 고유하고 식별자에 대한 규칙을 따라야 합니다.MIN_CPU_PERCENT =value
CPU 경합이 있을 때 리소스 풀의 모든 요청에 대해 보장되는 평균 CPU 대역폭을 지정합니다. value는 기본값이 0인 정수입니다. value의 허용 범위는 0에서 100까지입니다.MAX_CPU_PERCENT =value
CPU 경합이 있을 때 이 리소스 풀의 모든 요청이 받는 최대 평균 CPU 대역폭을 지정합니다. value는 기본 설정이 100인 정수입니다. value의 허용 범위는 1에서 100까지입니다.CAP_CPU_PERCENT =value
적용 대상: SQL Server 2012 - SQL Server 2014
리소스 풀의 모든 요청에서 받을 CPU 대역폭의 하드 캡을 지정합니다. 최대 CPU 대역폭 수준을 지정된 값과 동일하게 제한합니다. value는 기본 설정이 100인 정수입니다. value의 허용 범위는 1에서 100까지입니다.
AFFINITY {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}
적용 대상: SQL Server 2012 - SQL Server 2014
리소스 풀을 특정 스케줄러에 연결합니다. 기본값은 AUTO입니다.
AFFINITY SCHEDULER = ( <scheduler_range_spec> **)**은 리소스 풀을 지정된 ID로 식별된 SQL Server 일정으로 매핑합니다. 이러한 ID는 sys.dm_os_schedulers(Transact-SQL)의 scheduler_id 열에 있는 값으로 매핑됩니다.
AFFINITY NUMANODE = ( <NUMA_node_range_spec> **)**을 사용하면 리소스 풀의 선호도가 지정된 NUMA 노드 또는 노드 범위에 해당하는 물리적 CPU에 매핑되는 SQL Server 스케줄러로 설정됩니다. 다음 Transact-SQL 쿼리를 사용하여 물리적 NUMA 구성과 SQL Server 스케줄러 ID 간의 매핑을 검색할 수 있습니다.
SELECT osn.memory_node_id AS [numa_node_id], sc.cpu_id, sc.scheduler_id FROM sys.dm_os_nodes AS osn INNER JOIN sys.dm_os_schedulers AS sc ON osn.node_id = sc.parent_node_id AND sc.scheduler_id < 1048576;
MIN_MEMORY_PERCENT =value
다른 리소스 풀과 공유할 수 없으며 이 리소스 풀에 예약된 최소 메모리 양을 지정합니다. value는 정수이며 기본 설정은 0입니다. value의 허용 범위는 0~100입니다.MAX_MEMORY_PERCENT =value
이 리소스 풀의 요청에서 사용할 수 있는 총 서버 메모리를 지정합니다. value는 기본 설정이 100인 정수입니다. value의 허용 범위는 1에서 100까지입니다.MIN_IOPS_PER_VOLUME =value
적용 대상: SQL Server 2014 - SQL Server 2014
리소스 풀에 예약할 디스크 볼륨당 최소 IOPS(초당 IO 작업)를 지정합니다. value의 허용 범위는 0에서 2^31-1(2,147,483,647)까지입니다. 풀에 대한 최소 임계값이 없음을 나타내려면 0을 지정합니다. 기본값은 0입니다.
MAX_IOPS_PER_VOLUME =value
적용 대상: SQL Server 2014 - SQL Server 2014.
리소스 풀에 대해 허용할 디스크 볼륨당 최대 IOPS(초당 IO 작업)를 지정합니다. value의 허용 범위는 0에서 2^31-1(2,147,483,647)까지입니다. 풀에 대한 무제한 임계값을 설정하려면 0을 지정합니다. 기본값은 0입니다.
풀에 대한 MAX_IOPS_PER_VOLUME이 0으로 설정된 경우 풀이 전혀 제어되지 않으며, 다른 풀에 MIN_IOPS_PER_VOLUME 집합이 설정되었더라도 시스템에서 모든 IOPS를 사용할 수 있습니다. 이 경우에는 이 풀의 IO를 제어하려는 경우 이 풀에 대한 MAX_IOPS_PER_VOLUME 값을 높은 값(예를 들어, 최대값 2^31-1)으로 설정하는 것이 좋습니다.
주의
MIN_IOPS_PER_VOLUME과 MAX_IOPS_PER_VOLUME은 초당 최소 및 최대 읽기 또는 쓰기를 지정합니다. 이러한 읽기 또는 쓰기는 크기 제한이 없으며 최소 또는 최대 처리량을 나타내지 않습니다.
MAX_CPU_PERCENT 및 MAX_MEMORY_PERCENT의 값은 MIN_CPU_PERCENT 및 MIN_MEMORY_PERCENT의 각 값보다 크거나 같아야 합니다.
CAP_CPU_PERCENT는 풀에 연결된 작업이 CAP_CPU_PERCENT 값보다 큰 값이 아닌 MAX_CPU_PERCENT 값보다 큰 CPU 용량(사용 가능한 경우)을 사용할 수 있다는 점에서 MAX_CPU_PERCENT와 다릅니다.
선호도가 설정된 각 구성 요소(스케줄러 또는 NUMA 모드)에 대한 총 CPU 비율은 100%를 초과하면 안 됩니다.
사용 권한
CONTROL SERVER 권한이 필요합니다.
예
다음 예에서는 bigPool라는 리소스 풀을 만드는 방법을 보여 줍니다. 이 풀은 기본 리소스 관리자 설정을 사용합니다.
CREATE RESOURCE POOL bigPool;
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
다음 예에서는 CAP_CPU_PERCENT를 하드 캡 30%로 설정하고 AFFINITY SCHEDULER를 0-63과 128-191 범위로 설정합니다.
적용 대상: SQL Server 2012 - SQL Server 2014. |
CREATE RESOURCE POOL PoolAdmin
WITH (
MIN_CPU_PERCENT = 10,
MAX_CPU_PERCENT = 20,
CAP_CPU_PERCENT = 30,
AFFINITY SCHEDULER = (0 TO 63, 128 TO 191),
MIN_MEMORY_PERCENT = 5,
MAX_MEMORY_PERCENT = 15
);
다음 예에서는 MIN_IOPS_PER_VOLUME을 <some value>로 설정하고 MAX_IOPS_PER_VOLUME을 <some value>로 설정합니다. 이러한 값은 리소스 풀에 대해 제공되는 물리적 I/O 읽기 및 쓰기 작업을 제어합니다.
적용 대상: SQL Server 2014 - SQL Server 2014 |
CREATE RESOURCE POOL PoolAdmin
WITH (
MIN_IOPS_PER_VOLUME = 20,
MAX_IOPS_PER_VOLUME = 100
);
참고 항목
참조
ALTER RESOURCE POOL(Transact-SQL)
DROP RESOURCE POOL(Transact-SQL)
CREATE WORKLOAD GROUP(Transact-SQL)
ALTER WORKLOAD GROUP(Transact-SQL)
DROP WORKLOAD GROUP(Transact-SQL)
ALTER RESOURCE GOVERNOR(Transact-SQL)