CRIAR POOL DE RECURSOS (Transact-SQL)
Aplica-se a:SQL ServerAzure SQL Managed Instance
Cria um administrador de recursos pool de recursos. Um pool de recursos representa um subconjunto dos recursos físicos (CPU, memória e E/S) de uma instância do Mecanismo de Banco de Dados. O administrador de recursos permite reservar ou limitar recursos do servidor entre pools de recursos, até um máximo de 64 pools.
O administrador de recursos não está disponível em todas as edições do SQL Server. Para obter uma lista de recursos suportados pelas edições do SQL Server, consulte edições e recursos com suporte do SQL Server 2022.
Observação
Para a Instância Gerenciada SQL do Azure, você deve estar no contexto do banco de dados master
para modificar a configuração do administrador de recursos.
Transact-SQL convenções de sintaxe
Sintaxe
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]
Argumentos
pool_name
É o nome definido pelo usuário para o pool de recursos. pool_name é alfanumérico, pode ter até 128 caracteres, deve ser exclusivo em uma instância do Mecanismo de Banco de Dados e deve estar em conformidade com as regras para identificadores de banco de dados.
MIN_CPU_PERCENT = valor
Especifica a largura de banda média garantida da CPU para todas as solicitações no pool de recursos quando há contenção de CPU. valor é um inteiro com uma configuração padrão de 0. O intervalo permitido para valor é de 0 a 100.
MAX_CPU_PERCENT = valor
Especifica a largura de banda média máxima da CPU que todas as solicitações no pool de recursos recebem quando há contenção de CPU. valor é um inteiro com uma configuração padrão de 100. O intervalo permitido para valor é de 1 a 100.
CAP_CPU_PERCENT = valor
Aplica-se a: SQL Server 2012 (11.x) e posterior.
Especifica um limite rígido na largura de banda da CPU que todas as solicitações no pool de recursos recebem. Limita o nível máximo de largura de banda da CPU a ser o mesmo que o valor especificado. valor é um inteiro com uma configuração padrão de 100. O intervalo permitido para valor é de 1 a 100.
Observação
Devido à natureza estatística da governança da CPU, você pode notar picos curtos ocasionais excedendo o valor especificado em CAP_CPU_PERCENT
.
AFFINIDADE {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}
Aplica-se a: SQL Server 2012 (11.x) e posterior.
Anexe o pool de recursos a agendadores específicos. O valor padrão é AUTO
.
A especificação de <scheduler_range_spec>
para AFFINITY SCHEDULER
afilia o pool de recursos aos agendadores do Mecanismo de Banco de Dados identificados pelas IDs fornecidas. Esses IDs são mapeados para os valores na coluna scheduler_id
no sys.dm_os_schedulers.
A especificação de <NUMA_node_range_spec>
para AFFINITY NUMANODE
afilia o pool de recursos aos agendadores do Mecanismo de Banco de Dados que mapeiam para as CPUs lógicas que correspondem a determinado nó NUMA ou a um intervalo de nós. Você pode usar a seguinte consulta Transact-SQL para descobrir o mapeamento entre a configuração física do NUMA e os IDs do agendador do Mecanismo de Banco de Dados.
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 = valor
Especifica a quantidade mínima de memória do espaço de trabalho de consulta reservada para o pool de recursos que não pode ser compartilhada com outros pools de recursos. valor é um inteiro com uma configuração padrão de 0. O intervalo permitido para valor é de 0 a 100.
MAX_MEMORY_PERCENT = valor
Especifica a quantidade máxima de memória do espaço de trabalho de consulta que as solicitações neste pool de recursos podem usar. valor é um inteiro com uma configuração padrão de 100. O intervalo permitido para valor é de 1 a 100.
MIN_IOPS_PER_VOLUME = valor
Aplica-se a: SQL Server 2014 (12.x) e posterior.
Especifica o mínimo de operações de E/S por segundo (IOPS) por volume de disco a ser reservado para o pool de recursos. O intervalo permitido para valor é de 0 a 2^31-1 (2.147.483.647). Especifique 0 para indicar que não há mínimo para o pool. O padrão é 0.
MAX_IOPS_PER_VOLUME = valor
Aplica-se a: SQL Server 2014 (12.x) e posterior.
Especifica o máximo de operações de E/S por segundo (IOPS) por volume de disco para permitir o pool de recursos. O intervalo permitido para valor é de 0 a 2^31-1 (2.147.483.647). Especifique 0 para remover um limite de IOPS para o pool. O padrão é 0.
Se o MAX_IOPS_PER_VOLUME
de um pool estiver definido como 0, o pool não será controlado por E/S e poderá receber todas as IOPS do sistema, mesmo que outros pools tenham MIN_IOPS_PER_VOLUME
definidos. Nesse caso, recomendamos que você defina o valor de MAX_IOPS_PER_VOLUME
para esse pool como um número alto (por exemplo, o valor máximo 2^31-1) para tornar esse pool controlado por IO e honrar as reservas de IOPS que possam existir para outros pools.
Comentários
A soma de MIN_CPU_PERCENT
ou MIN_MEMORY_PERCENT
para todos os pools de recursos não pode exceder 100%.
MIN_IOPS_PER_VOLUME
e MAX_IOPS_PER_VOLUME
especificar o mínimo e o máximo de OI por segundo. Os IOs podem ser lidos ou gravados e podem ser de qualquer tamanho. Portanto, com os mesmos limites de IOPS, a taxa de transferência mínima e máxima de E/S pode variar dependendo da combinação de tamanhos de E/S na carga de trabalho.
Os valores de MAX_CPU_PERCENT
e MAX_MEMORY_PERCENT
devem ser maiores ou iguais aos valores de MIN_CPU_PERCENT
e MIN_MEMORY_PERCENT
, respectivamente.
CAP_CPU_PERCENT
difere de MAX_CPU_PERCENT
porque as cargas de trabalho associadas ao pool podem usar a capacidade da CPU acima do valor de MAX_CPU_PERCENT
se estiver disponível, mas não acima do valor de CAP_CPU_PERCENT
. Embora possa haver picos curtos superiores a CAP_CPU_PERCENT
, as cargas de trabalho não podem exceder CAP_CPU_PERCENT
por longos períodos de tempo, mesmo quando a capacidade adicional da CPU está disponível.
A porcentagem total de CPU para cada componente afinitizado (agendador(es) ou nó(s) NUMA(s)) não pode exceder 100%.
Para obter mais informações, consulte do Administrador de Recursos e Pool de recursos do Administrador de Recursos.
Permissões
Requer a permissão de CONTROL SERVER
.
Exemplos
Para obter exemplos adicionais de configuração do administrador de recursos, consulte Exemplos de configuração do administrador de recursos e práticas recomendadas.
Criar um pool de recursos
Este exemplo criou um pool de recursos chamado bigPool
. Esse pool usa as configurações padrão do administrador de recursos.
CREATE RESOURCE POOL bigPool;
ALTER RESOURCE GOVERNOR RECONFIGURE;
Definir reservas e limites de CPU e memória
Este exemplo configura o pool de recursos adhocPool
da seguinte maneira:
- Reservas 10% da CPU e 5% da memória do espaço de trabalho de consulta usando
MIN_CPU_PERCENT
eMIN_MEMORY_PERCENT
respectivamente. - Define um limite de memória do espaço de trabalho de consulta de 15% usando
MAX_MEMORY_PERCENT
. - Define um limite de CPU flexível de 20% e um limite de CPU de 30% usando
MAX_CPU_PERCENT
eCAP_CPU_PERCENT
respectivamente. - Afinitiza o pool para dois intervalos de CPUs lógicas (0 a 63 e 128 a 191) usando
AFFINITY SCHEDULER
.
Aplica-se a: SQL Server 2012 (11.x) e posterior.
CREATE RESOURCE POOL adhocPool
WITH (
MIN_CPU_PERCENT = 10,
MAX_CPU_PERCENT = 20,
CAP_CPU_PERCENT = 30,
MIN_MEMORY_PERCENT = 5,
MAX_MEMORY_PERCENT = 15,
AFFINITY SCHEDULER = (0 TO 63, 128 TO 191)
);
Definir reserva e limite de IOPS
Este exemplo reserva 200 IOPS por volume para o pool usando MIN_IOPS_PER_VOLUME
e limita o IOPS por volume a 1000 usando MAX_IOPS_PER_VOLUME
. Esses valores governam o total de operações físicas de leitura e gravação de E/S disponíveis para solicitações que usam o pool de recursos.
Aplica-se a: SQL Server 2014 (12.x) e posterior.
CREATE RESOURCE POOL PoolAdmin
WITH (
MIN_IOPS_PER_VOLUME = 200,
MAX_IOPS_PER_VOLUME = 1000
);
Conteúdo relacionado
- Tutorial: Exemplos de configuração do administrador de recursos e práticas recomendadas
- Administrador de recursos
- Pool de recursos do Administrador de recursos
- Criar um pool de recursos
- ALTERAR O POOL DE RECURSOS
- DESCARTAR POOL DE RECURSOS
- CRIAR GRUPO DE CARGA DE TRABALHO
- ALTERAM O GRUPO DE CARGA DE TRABALHO
- GRUPO DE CARGA DE TRABALHO DE QUEDA
- ALTERAR O ADMINISTRADOR DE RECURSOS