Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web...

25
Administrador de Recursos do SQL Server 2012 Artigo técnico do SQL Server Autor: Guy Bowerman Revisores técnicos: Jim van de Erve, Lindsey Allen (ZHU), Madhan Arumugam Ramakrishnan, Xin Jin Publicado em: julho de 2012 Aplica-se a: SQL Server 2012 Resumo: o SQL Server 2012 oferece aperfeiçoamentos no Administrador de Recursos que refletem uma crescente necessidade de serviços de banco de dados de gerenciamento centralizado para fornecer multilocação aos clientes que exigem cargas de trabalho isoladas. Este documento descreve esses aperfeiçoamentos e por que eles foram adicionados. Ele apresenta um passo a passo completo que você pode usar para se familiarizar com os novos recursos.

Transcript of Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web...

Page 1: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Administrador de Recursos do SQL Server 2012

Artigo técnico do SQL Server

Autor: Guy Bowerman

Revisores técnicos: Jim van de Erve, Lindsey Allen (ZHU), Madhan Arumugam Ramakrishnan, Xin Jin

Publicado em: julho de 2012

Aplica-se a: SQL Server 2012

Resumo: o SQL Server 2012 oferece aperfeiçoamentos no Administrador de Recursos que refletem uma crescente necessidade de serviços de banco de dados de gerenciamento centralizado para fornecer multilocação aos clientes que exigem cargas de trabalho isoladas. Este documento descreve esses aperfeiçoamentos e por que eles foram adicionados. Ele apresenta um passo a passo completo que você pode usar para se familiarizar com os novos recursos.

Page 2: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Direitos autorais

Este documento é fornecido "no estado em que se encontra". As informações e opiniões expressas nele, inclusive URLs e outras referências a sites da Internet, poderão ser alteradas sem aviso prévio. Você assume integralmente o risco de usá-lo.

Este documento não fornece direitos legais a nenhuma propriedade intelectual de qualquer produto Microsoft. Você pode copiar e usar este documento para sua referência interna.

© 2012 Microsoft. Todos os direitos reservados.

2

Page 3: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

SumárioIntrodução...................................................................................................................................................4

Novos recursos do Administrador de Recursos no SQL Server 2012...........................................................5

Por que alterar o Administrador de Recursos?........................................................................................5

Resumo dos novos recursos....................................................................................................................6

Um exemplo de caso de uso do isolamento da carga de trabalho..............................................................6

Parte 1 – Configuração inicial – criar usuários e cargas de trabalho........................................................7

Parte 2 – Configurar o Administrador de Recursos..................................................................................8

Parte 3 – Executar a carga de trabalho....................................................................................................9

Parte 4 – Monitoramento........................................................................................................................9

Parte 5 – Disputa das cargas de trabalho..............................................................................................11

Práticas recomendadas.............................................................................................................................18

Solucionando problemas...........................................................................................................................19

Conclusão..................................................................................................................................................20

Referências............................................................................................................................................20

3

Page 4: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

IntroduçãoO Administrador de Recursos do SQL Server foi introduzido no Microsoft SQL Server 2008 Enterprise como um meio de proporcionar isolamento de recursos e multilocação para instâncias únicas do SQL Server que lidavam com cargas de trabalho de vários clientes. O recurso de Administrador de Recursos permite definir limites de quantidade de memória e recursos de CPU que as solicitações de entrada podem usar, além de fornecer uma maneira de isolar e limitar as consultas sem controle, adicionando controle refinado de recursos para estorno e oferecendo um desempenho previsível. Para obter mais informações sobre esse recurso, consulte Administrador de Recursos (http://msdn.microsoft.com/pt-br/library/bb933866.aspx) nos Manuais Online do SQL Server.

Com o SQL Server 2012, você pode proporcionar um isolamento mais completo de recursos de CPU para cargas de trabalho e impor limites de uso de CPU para obter um nível mais alto de previsibilidade, além de poder controlar uma proporção maior de alocações de memória do SQL Server.

Pools de recursos, grupos de carga de trabalho e classificaçãoO Administrador de Recursos do SQL Server introduziu o conceito de pools de recursos como uma implementação fundamental de isolamento de recursos em uma instância do SQL Server. Os pools de recursos são controlados com o Transact-SQL e outras interfaces de gerenciamento, como o SMO, e podem receber atribuições mínimas e máximas de recursos de memória e CPU por meio das instruções CREATE RESOURCE POOL e ALTER RESOURCE POOL.

O SQL Server 2012 oferece suporte a até 62 pools que podem ser definidos pelo usuário (o SQL Server 2008 permitia 18). Também há dois pools de recursos integrados: um chamado de interno, que é reservado para tarefas do sistema e não é configurável, e outro que pode ser configurado pelo usuário chamado de padrão, onde as cargas de trabalho serão executadas por padrão.

Cada pool de recursos do usuário pode ser associado a mais de um grupo de cargas de trabalho, que são entidades lógicas que representam uma ou várias cargas de trabalho do cliente. As sessões de entrada podem ser associadas a esses grupos de cargas de trabalho por meio de uma função Classifier definível pelo usuário, que é executada depois do logon e pode chamar funções do sistema para avaliar várias propriedades de logon, como o nome de usuário, o nome da estação de trabalho e o nome do banco de dados. O diagrama a seguir mostra como esses componentes se integram para classificar conexões de entrada em pools de recursos.

4

Page 5: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Figura 1: Classificação de sessão do Administrador de Recursos

Para obter mais informações, incluindo uma introdução definitiva e detalhada aos recursos do Administrador de Recursos no SQL Server 2008 e no SQL Server 2008 R2, consulte o white paper Usando o Administrador de Recursos (http://msdn.microsoft.com/library/ee151608.aspx), de Aaron Bertrand e Boris Baryshnikov.

Este artigo examina os novos recursos introduzidos no SQL Server 2012, explica por que eles foram adicionados e descreve como usá-los.

Novos recursos do Administrador de Recursos no SQL Server 2012

Por que alterar o Administrador de Recursos?À medida que o número de núcleos de CPU por soquete aumenta e o custo de grandes computadores diminui, ouvimos comentários como este de parceiros de hospedagem do SQL Server que usam o Administrador de Recursos para isolar recursos do SQL para seus clientes: "Com os servidores mais novos que têm 10 e 12 núcleos por CPU, estamos retendo recursos de CPU nos servidores, já que somos limitados pelo número máximo de pools". Os hosters que desejam oferecer aos clientes bancos de dados econômicos como uma oferta de serviço baseada no SQL Server precisam de mais flexibilidade para dividir os recursos disponíveis em grandes computadores entre cargas de trabalho, além de minimizar os problemas que ocorrem quando as cargas de trabalho competem entre si por recursos e uma carga de trabalho tem um impacto negativo sobre os recursos disponíveis em outra carga de trabalho — o problema denominado "vizinho barulhento".

5

Page 6: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Com os computadores e softwares de virtualização cada vez mais potentes, o número e o tamanho de instâncias do SQL Server que estão sendo virtualizadas e gerenciadas em nuvens privadas aumentam. Consequentemente, cada vez é mais importante fornecer aos usuários de recursos compartilhados isolamento mais eficaz. As cargas de trabalho precisam ser executadas em recursos particionados em uma instância do SQL Server, sem sofrer com os problemas de vizinhos barulhentos.

Outra tendência que temos visto é um aumento no uso do estorno para utilização de recursos. O controle e a cobrança pelo uso de recursos internos dentro das empresas e por provedores de hospedagem pública estão se tornando comuns, com uma consequente necessidade de fornecer cobrança previsível aos consumidores desses recursos.

Resumo dos novos recursosPara atender a essas necessidades, os recursos a seguir foram adicionados ao SQL Server 2012:

- Aumento do número máximo de pools de recursos, de 20 para 64, permitindo o particionamento de computadores maiores entre mais cargas de trabalho.

- Adição de uma opção CAP_CPU_PERCENT aos pools de recursos para definir um limite rígido de uso de recursos de CPU, o que proporciona maior previsibilidade.

- Adição de uma opção AFFINITY ao pools de recursos, permitindo que pools de recursos individuais tenham afinidades com um ou mais agendadores e nós NUMA, o que oferece maior isolamento dos recursos de CPU.

- Administração de alocações de várias páginas pelo Gerenciador de Memória do SQL Server, além das alocações de uma única página. Esse é o resultado de uma importante reformulação no SQL Server 2012, com o Gerenciador de Memória se tornando a interface central do sistema operacional para alocação de página. Para obter mais informações sobre as alterações do Gerenciador de Memória, consulte o blog da equipe de SQLOS e infraestrutura em nuvem (http://blogs.msdn.com/b/sqlosteam/).

Para que você saiba como as novas funcionalidades de administração de recursos funcionam e como usá-las, fornecemos um exemplo simples que mostra o isolamento da carga de trabalho em ação.

Um exemplo de caso de uso do isolamento da carga de trabalhoNeste cenário, você está hospedando uma nuvem privada e mantendo um serviço de banco de dados centralizado que oferece suporte a dois departamentos: Vendas (Sales) e Marketing. Esses departamentos compartilham o mesmo banco de dados entre duas cargas de trabalho que consomem muitos recursos de CPU. Para manter o controle dos custos, você acompanha os recursos que cada departamento utiliza. Em seguida, você cobra os departamentos individualmente pelos recursos de CPU que usam.

6

Page 7: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Ambos os departamentos exigem um desempenho previsível para suas consultas. O departamento de Vendas quer que suas consultas sempre tenham os recursos de que precisam e, de modo ideal, quer ter a experiência isolada de total disponibilidade de um núcleo de CPU para o departamento o tempo todo. No entanto, ao mesmo tempo, seus usuários devem compartilhar a instância de banco de dados com outros departamentos. Enquanto isso, o departamento de Marketing tem consultas de prioridade mais baixa. A equipe também precisa de um desempenho previsível, mas que esteja dentro de um orçamento de recursos fixo.

Sua função é fornecer isolamento da carga de trabalho, desempenho previsível e cobrança previsível nesse ambiente.

Observação: para mostrar claramente os novos recursos, este passo a passo se concentra nos recursos de CPU. Ele não inclui o gerenciamento da memória, que também pode ser controlada com o Administrador de Recursos do SQL Server.

O passo a passo a seguir pode ser visto como um tutorial. Para testá-lo, comece com um computador ou uma máquina virtual com o SQL Server 2012 Enterprise, Evaluation ou Developer instalado, configurado com dois núcleos de CPU.

Parte 1 – Configuração inicial – criar usuários e cargas de trabalhoEm primeiro lugar, crie os logons de usuário para as cargas de trabalho de Vendas e Marketing. (Isso presume que a autenticação de modo misto do SQL Server esteja habilitada para essa instância como uma propriedade da instância.)

CREATE LOGIN Sales WITH PASSWORD = 'UserPwd', CHECK_POLICY = OFFCREATE LOGIN Marketing WITH PASSWORD = 'UserPwd', CHECK_POLICY = OFFCREATE USER Sales FOR LOGIN Sales;CREATE USER Marketing FOR LOGIN Marketing;GO

A primeira parte da demonstração mostra as cargas de trabalho disputando entre si pelo tempo da CPU. Portanto, antes de começar a usar o Administrador de Recursos, estabeleça a afinidade do SQL Server com uma única CPU, de modo que todas as cargas de trabalho compartilhem uma única CPU.

sp_configure 'show advanced', 1GORECONFIGUREGOsp_configure 'affinity mask', 1GORECONFIGUREGO

7

Page 8: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Parte 2 – Configurar o Administrador de RecursosO Administrador de Recursos do SQL Server será usado para associar as cargas de trabalho de Vendas e Marketing a pools de recursos distintos. Assim você pode acompanhar o uso de recursos separadamente com o Monitor de Desempenho. Porém, a princípio, não será feita nenhuma outra configuração do Administrador de Recursos; isto é, nenhum recurso de CPU será alocado para o pool de recursos ainda, assim os usuários não verão nenhuma diferença entre usar o Administrador de Recursos e não usá-lo.

1. Crie os pools de recursos.

CREATE RESOURCE POOL SalesPoolCREATE RESOURCE POOL MarketingPool

2. Crie os grupos de cargas de trabalho.

CREATE WORKLOAD GROUP SalesGroupUSING SalesPool

CREATE WORKLOAD GROUP MarketingGroupUSING MarketingPoolGO

3. Crie uma função de classificação que seja acionada quando um usuário se conectar. A função associa a conexão a um grupo de cargas de trabalho específico com base no logon do usuário de entrada (isto é, se a origem do logon é no departamento de Vendas ou Marketing).

CREATE FUNCTION CLASSIFIER_V1()RETURNS SYSNAME WITH SCHEMABINDINGBEGIN

DECLARE @val varchar(32)SET @val = 'default';IF 'Sales' = SUSER_SNAME()

SET @val = 'SalesGroup';ELSE IF 'Marketing' = SUSER_SNAME()

SET @val = 'MarketingGroup';RETURN @val;

ENDGO

ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.CLASSIFIER_V1)GO

4. Agora ative o Administrador de Recursos.

ALTER RESOURCE GOVERNOR RECONFIGUREGO

8

Page 9: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Parte 3 – Executar a carga de trabalhoO loop simples a seguir demonstra uma carga de trabalho que usa muitos recursos de CPU para ilustrar claramente os efeitos de usar o Administrador de Recursos. Ou seja, ele faz a CPU funcionar sem fazer mais nada.

SET NOCOUNT ONDECLARE @i INT DECLARE @s VARCHAR(100) SET @i = 100000000WHILE @i > 0 BEGIN SELECT @s = @@version; SET @i = @i - 1; END

Ao salvar esse loop como um arquivo denominado workload.sql, você pode iniciar a carga de trabalho de Vendas em um prompt de comando, como a seguir.

start sqlcmd -S localhost -U Sales -P UserPwd -i "workload.sql"

Com a execução dessa carga de trabalho, o uso da CPU para o SQL Server no único núcleo com o qual o SQL Server tem afinidade é de 100%.

Parte 4 – MonitoramentoVocê pode acompanhar o uso de recursos pelo pool usando o Monitor de Desempenho. O contador de desempenho relevante é:

SQLServer:Resource Pool Stats->CPU usage

9

Page 10: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

É possível adicionar um contador para acompanhar cada pool usando a caixa de diálogo Adicionar Contadores.

Observe que, em um computador com duas CPUs, se o SQL Server tiver afinidade com uma única CPU, o uso da CPU do pool de Vendas chegará a um máximo de 50% num gráfico (isto é, 100% de uma CPU) como este.

10

Page 11: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Portanto, sempre que você visualizar contadores gráficos neste passo a passo, duplique-os para obter o percentual de uso da CPU de um núcleo.

Parte 5 – Disputa das cargas de trabalhoAdicione outra carga de trabalho para representar o pool de Marketing.

start sqlcmd -S localhost -U Marketing -P UserPwd -i "workload.sql"

Agora, as duas cargas de trabalho estão competindo e os recursos de CPU são divididos igualmente entre os pools de recursos de Vendas (verde) e Marketing (vermelho).

11

Page 12: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Como as consultas de vendas têm prioridade, você pode garantir que elas recebam uma proporção maior dos recursos de CPU ajustando o pool de recursos de Vendas e configurando um valor mínimo de CPU. Defina esse valor como 70% para o pool de Vendas.

ALTER RESOURCE POOL SalesPoolWITH (MIN_CPU_PERCENT = 70)GOALTER RESOURCE GOVERNOR RECONFIGUREGO

Agora a carga de trabalho de Vendas está recebendo claramente mais recursos da CPU, e quase 70% de uma única CPU, enquanto a carga de trabalho de Marketing está recebendo cerca de 30%.

12

Page 13: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Quando ambas as cargas de trabalho estiverem maximizando uma única CPU como essa, continuará sendo difícil para o agendador do SQL Server dividir o trabalho em partes proporcionais e fornecer à carga de trabalho de Vendas exatamente 70% ou mais de CPU. Mais adiante, este documento discute como usar um novo recurso, a afinidade do agendador, para isolar cargas de trabalho em agendadores individuais ou em grupos. No entanto, para mostrar como é possível usar o Administrador de Recursos para dividir cargas de trabalho que são executadas em CPUs únicas ou compartilhadas, suponha que o número de CPUs seja limitado e que essas cargas de trabalho precisem compartilhar um único agendador em execução em uma única CPU. Você pode tornar a carga de trabalho de Vendas mais próxima de 70% definindo um valor máximo de 30% para o pool de Marketing. O valor MAX_CPU_PERCENT informa ao agendador como alocar recursos quando há contenção entre as cargas de trabalho.

ALTER RESOURCE POOL MarketingPoolWITH (MAX_CPU_PERCENT = 30)GOALTER RESOURCE GOVERNOR RECONFIGUREGO

Agora a divisão de recursos de CPU está muito mais próxima da proporção de 70/30 desejada.

13

Page 14: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Mas o que aconteceria com a carga de trabalho de Marketing se a carga de trabalho de Vendas fosse diminuída ou interrompida por completo? Ela permaneceria com o valor máximo de 30%? A figura a seguir mostra os resultados dessa alteração.

14

Page 15: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Não. A configuração MAX_CPU_PERCENT é um máximo oportunista. Se houver capacidade de CPU disponível, a carga de trabalho a usará até o máximo, 100%. O valor "máximo" se aplica apenas quando há contenção de CPU, portanto, se a carga de trabalho de Vendas for desativada, o departamento de Marketing começará a usar 100% da CPU.

Em muitos casos, isso é exatamente o necessário, pois a CPU não deve ficar ociosa de um modo geral. Porém, nesse caso, o departamento de Marketing está sendo cobrado pelo uso de recursos e quer uma cobrança previsível; ele não quer mais de 30% de um núcleo. Suponha que você queira reservar recursos para outras cargas de trabalho e sempre mantenha a carga de trabalho de Marketing em 30% ou menos. É possível fazer isso usando um novo recurso do Administrador de Recursos no SQL Server 2012 chamado de configuração de pool de recursos CAP_CPU_PERCENT, que define um limite rígido de uso de CPU. Defina um máximo de 30% no pool de Marketing.

ALTER RESOURCE POOL MarketingPoolWITH (CAP_CPU_PERCENT=30)GOALTER RESOURCE GOVERNOR RECONFIGUREGO

Agora o gráfico de CPU para o pool de Marketing começa a se nivelar e não ultrapassa 30%. O departamento de marketing terá sua cobrança previsível.

15

Page 16: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Suponha que o departamento de vendas precise de uma experiência mais isolada e queira 100% de um núcleo de CPU disponível o tempo todo. Ele pode usar outro recurso novo do Administrador de Recursos no SQL Server 2012, a afinidade do agendador. Para mostrar isso, remova a máscara de afinidade que aplicou ao SQL Server e permita que o mecanismo do SQL Server use ambas as CPUs do computador.

sp_configure 'affinity mask', 0GORECONFIGUREGO

Agora você pode estabelecer as afinidades de cada pool com seu próprio agendador usando a nova opção de pool de recursos AFFINITY. Nesse caso, a opção disponibiliza efetivamente um único núcleo de CPU para cada carga de trabalho.

ALTER RESOURCE POOL SalesPoolWITH (AFFINITY SCHEDULER = (0))GOALTER RESOURCE POOL MarketingPoolWITH (AFFINITY SCHEDULER = (1))GOALTER RESOURCE GOVERNOR RECONFIGUREGO

16

Page 17: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Depois que esse código é executado, as cargas de trabalho são agendadas em diferentes CPUs. Agora, com o limite ainda definido, a carga de trabalho de Marketing continua usando 30% de um núcleo, enquanto a carga de Vendas usa 100% do outro núcleo. Com a afinidade do agendador estabelecida, as linhas de uso de CPU para cada pool de recursos agora são suaves, demonstrando isolamento completo e consistente dos recursos de CPU entre essas cargas de trabalho.

Agora, no que diz respeito às cargas de trabalho de Vendas e Marketing, elas estão sendo executadas em dois computadores isolados, obtendo os recursos de que precisam de maneira previsível. Este passo a passo mostrou um exemplo simples de como alguns dos novos recursos do Administrador de Recursos do SQL Server 2012 podem ser usados para fornecer um isolamento de recursos mais eficiente.

17

Page 18: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Práticas recomendadasConsidere o consumo total de recursos do aplicativo.A demonstração neste documento representa uma carga de trabalho idealizada, sem dependência de outros recursos, como memória e E/S. Para a memória, o Administrador de Recursos pode fornecer limites rígidos e distribuir os recursos do computador. A configuração de pool de recursos MAX_MEMORY_PERCENT é efetivamente um limite rígido do uso de memória, e não uma configuração oportunista. Uma exceção à administração de memória é o pool de buffers, que é compartilhado para otimizar o desempenho geral da consulta. Atualmente, o Administrador de Recursos não gerencia a E/S, de modo que outros métodos precisam ser usados para minimizar os problemas de vizinhos barulhentos com E/S, como maximização da memória, distribuição, isolamento de E/S e otimização de E/S aleatória com redes SAN eficientes.

Evite compartilhar cargas de trabalho mistas nas mesmas CPUs.Quando as cargas de trabalho competem entre si, é mais fácil para o agendador fazer uma divisão imparcial e capacitar cargas de trabalho semelhantes. Se estiver administrando recursos para cargas de trabalho muito variáveis, por exemplo, uma mistura de uso intenso de CPU e E/S alta, considere o particionamento dessas cargas de trabalho usando a afinidade do agendador, em vez de configurar limites e máximo de CPU.

Sempre reconfigure a afinidade de pools depois de alterar a configuração de CPU.Você define a afinidade de um pool de recursos para um conjunto de agendadores do SQL Server com a expectativa de isolá-los para CPUs específicas. O que acontecerá se o computador for desligado e as CPUs forem removidas? Por exemplo, sua instância do SQL Server está sendo executada em uma máquina virtual e o uso de CPU é baixo, de modo que você reconfigura a máquina virtual com menos CPUs.

Na melhor das hipóteses, as configurações da afinidade do agendador não estão mais corretas, pois os agendadores com os quais um pool de recursos tem afinidade agora podem apontar para CPUs diferentes. Na pior das hipóteses, eles podem apontar para CPUs inexistentes, o que resultará em falhas do Administrador de Recursos ou na padronização da afinidade para Automática.

Portanto, sempre reconfigure as definições da afinidade do agendador e reinicie o Administrador de Recursos depois de fazer alterações na configuração de CPU.

Siga as diretrizes de práticas recomendadas adicionais.Para obter mais informações sobre as diretrizes que abordam recursos do Administrador de Recursos do SQL Server 2008, consulte a seção Práticas recomendadas do white paper Usando o Administrador de Recursos (http://msdn.microsoft.com/library/ee151608.aspx).

18

Page 19: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Solucionando problemas Há novas ferramentas que possam me ajudar na solução de problemas?Para solucionar problemas com afinidades do pool de recursos e monitorar configurações de afinidade, o SQL Server 2012 inclui uma nova DMV:

sys.dm_resource_governor_resource_pool_affinity

Nome da coluna Tipo de dados

Descrição

Pool_id int A ID do pool de recursos.

Processor_group

smallint A ID do grupo de processadores lógicos do Windows.

Scheduler_mask bigint Uma máscara binária que representa os agendadores associados ao pool.

Estou recebendo erros de afinidade do agendador.Suponha que, quando estiver definindo a afinidade do agendador para um pool usar os agendadores de 12 a 14, você veja erros como este:

O intervalo SCHEDULER que especifica SCHEDULER 12 a 14 inclui, pelo menos, um SCHEDULER que não está disponível na instância atual. O número máximo de SCHEDULER disponível nesta instância é 12.

Isso significa que você está tentando definir a afinidade do pool de recursos com agendadores que não existem (por exemplo, você moveu sua configuração para um computador que tem poucas CPUs). Uma boa maneira de resolver isso é consultar a DMV sys.dm_os_schedulers para ver as atribuições exatas de agendador/CPU.

Não vejo os novos recursos do Administrador de Recursos definidos no modelo de objetos SMO.Se você usar o Windows PowerShell ou C# para configurar o Administrador de Recursos usando o SQL Server Management Objects (SMO), não poderá usar os novos recursos no SQL Server 2012. A expectativa é de que as novas classes do SMO estejam disponíveis no SQL Server 2012 Service Pack 1 (SP1).

Quando gero um script de uma definição do pool de recursos no SQL Server Management Studio, ele não mostra os novos recursos.Os aperfeiçoamentos de script no SQL Server Management Studio para mostrar os novos recursos do

19

Page 20: Resource Governor in SQL Server 2012download.microsoft.com/download/6/1/D/61D13F7E-7… · Web viewA demonstração neste documento representa uma carga de trabalho idealizada, sem

Administrador de Recursos, como CAP_CPU_PERCENT e afinidade do agendador, foram adicionados ao SQL Server 2012 SP1.

ConclusãoOs novos recursos do Administrador de Recursos no SQL Server 2012 facilitam a divisão de recursos de CPU e memória de um computador para oferecer isolamento de carga de trabalho e desempenho previsível a cargas de trabalho individuais em um ambiente de multilocação. Como as especificações individuais dos computadores estão aumentando em termos de núcleos de CPU e memória e, portanto, têm o potencial de oferecer recursos isolados a um número maior de clientes, o número máximo de pools de recursos também aumentou no SQL Server 2012, de 20 para 64. De forma combinada, esses recursos fornecem melhor multilocação ao oferecer suporte ao particionamento de recursos de computação de uma máquina em um número maior de pools mais isolados.

Para obter mais informações sobre o Administrador de Recursos no SQL Server 2012, consulte Administrador de Recursos (http://msdn.microsoft.com/pt-br/library/bb933866.aspx) nos Manuais Online do SQL Server.

ReferênciasVisão geral do Administrador de Recursos

Usando o Administrador de Recursos, de Aaron Bertrand e Boris Baryshnikov

Guia de Programação do SQL Server Management Objects (SMO)

Blog da equipe de infraestrutura em nuvem do SQL Server

Para obter mais informações:

http://www.microsoft.com/sqlserver/: Site do SQL Server

http://technet.microsoft.com/pt-br/sqlserver/: TechCenter do SQL Server

http://msdn.microsoft.com/pt-br/sqlserver/: SQL Server DevCenter

Este documento ajudou você? Envie seus comentários. Em uma escala de 1 (ruim) a 5 (excelente), como você classificaria este white paper e por quê? Por exemplo:

Você está classificando-o como excelente devido aos bons exemplos, às excelentes capturas de tela, à clareza do texto ou por outro motivo?

Você está classificando-o como ruim devido aos exemplos insatisfatórios, às capturas de tela confusas ou ao texto mal-escrito?

Estes comentários nos ajudam a melhorar a qualidade dos white papers que lançamos.

20