none
Duas instâncias SQL - distribuição de carga aos processadores; RRS feed

  • Pergunta

  • Senhores, bom dia.

    Atualmente tenho um servidor rodando duas instâncias SQL Server 2014;

    1 - A primeira instância está nomeada e usa versão Standard para software específico;

    2 - A segunda instância foi instalada posteriormente, como instância padrão (SQLEXPRESS), direcionada a uso mais simples de outro software;

    O funcionamento aparentemente está OK, entretanto ao avaliar o desempenho da primeira instância (Standard, Nomeada), segundo o Monitor/ Gerenciador de tarefas Windows, o uso dos processadores está concentrado apenas nos 4 primeiros núcleos, quando o trabalho deveria ser distribuído para até 16 núcleos, segundo documentação da versão Standard 2014;

    - Existe de fato alguma interferência quanto a este quesito?

    - O fato de ter instalado uma segunda instância EXPRESS, tornando-a padrão, poderá interferir na forma como o SQL Server entende a distribuição de carga, afetando o desempenho da instância "Standard" e limitando recursos aos limites da instância EXPRESS???


    sexta-feira, 13 de julho de 2018 14:52

Respostas

  • Alvanir,

    Neste caso a limitação pode aparecer em situações onde o custo de processamento seja acima do suportado pelos núcleos atuais.

    Talvez seja o caso de repensar e partir para a versão Enterprise.

    Uma sugestão, faça download da edição Developer, instale neste mesmo ambiente e verifique se todos os processadores são identificados e alocados.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 25 de julho de 2018 19:11
    Moderador

Todas as Respostas

  • Alvanir,

    Por padrão o Windows vai respeitar a ordem de precedência das instâncias, ou seja, se você definiu a Express como padrão as regras de uso de Hardware e alocação de recursos serão definidos inicialmente para ela, sabendo que a Express vai alocar para ela um único processador e 1Gb de memória para uso de buffer e 1Gb de memória que ela reconhece para as demais necessidades.

    Provavelmente o uso dos processadores esta alocadas aos 4 primeiras devido as configurações de NUMA, ou seja, o SQL Server esta identificando o primeiro núcleo e fazendo a alocação para ele, mas isso também depende de como esta configurado o uso de processadores.

    Nas propriedades da instância Standard, verifique como esta definida a alocação dos seus processadores.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    segunda-feira, 16 de julho de 2018 17:36
    Moderador
  • Obrigado, Pedro.

    Anteriormente havia realizado a verificação do formato de distribuição dos processadores (Afinidade de processadores nas Propriedades do Servidor);

    - Observando a instância "Express", um único processador é exibido quando desligo as opções de "afinidades automáticas" (tanto para processamento quanto para I/O);

    - Observando a instância "Standard", todos os processadores disponíveis são exibidos (32 no total - NUMA1 e 2),  porém, ao realizar a distribuição manual das afinidades - presumindo 16 totais entre Proc. e I/O - ao confirmar a alteração o SQL não permite, informando que "Estou tentando usar um número maior de processadores do que permite a licença atual". Fazendo os testes por tentativa e erro, esse número só foi permitido quando apliquei a afinidade a apenas 4 núcleos (2 para Proc. e 2 para I/O, por exemplo);

    Dessa forma, imaginei que o fato de ter instalado a instância padrão posteriormente, poderia estar limitando o uso dos processadores, mas avaliando mais claramente, em conjunto com sua resposta, não há ação cruzada para esse quesito;

    Novas informações:

    No passado usamos a mesma versão SQL Server 2014, porém, fizemos uso do período de avaliação da ferramenta, realizando a ativação posterior, onde por padrão, é necessário reinstalar todo o conjunto da solução;

    Esta ação poderia ter provocado algum tipo de limitação?

    quarta-feira, 18 de julho de 2018 20:49
  • Alvanir,

    Certo, que bom que você entendeu!

    Em relação a sua pergunta, a resposta é não, o uso da edição de avaliação não vai limitar a identificação e uso de recurso.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sábado, 21 de julho de 2018 17:51
    Moderador
  • Pedro,

    Antecipadamente, tentei distribuir as afinidades também por socket (NUMA 0 e 1), mas sem sucesso. A limitação a quatro núcleos continua sendo imposta, independente do formato de seleção e distribuição das afinidades, seja para Proc. ou para I/O.

    Acompanhei algumas pesquisas adicionais sobre o assunto, onde há instrução para realizar um ajuste de chave de registro e reinstalar a aplicação, ou uma nova versão. Os casos citados, afetaram especialmente usuários que tiveram a versão de avaliação expirada e somente após isso foi realizada a ativação do produto.

    Para nosso caso, especificamente, quando realizamos a instalação da versão definitiva com a chave de ativação Standard, removemos todos os componentes antigos relacionados a SQL Server, já que a versão de avaliação aplicada à época estava com idioma em "português" e a versão desejada e aplicada atualmente está em "inglês".

    Exceto por essas situações (troca de idioma e ativação do produto), não conseguimos encontrar correlação de problemas para buscar uma possível solução para essa condição de limites de uso de processadores.

    Portanto, diante do cenário, quais outros problemas poderiam causar a limitação de uso dos processadores para apenas quatro, onde esperava-se dezesseis núcleos disponíveis para operação?

    segunda-feira, 23 de julho de 2018 11:55
  • Alvanir,

    Neste caso a limitação pode aparecer em situações onde o custo de processamento seja acima do suportado pelos núcleos atuais.

    Talvez seja o caso de repensar e partir para a versão Enterprise.

    Uma sugestão, faça download da edição Developer, instale neste mesmo ambiente e verifique se todos os processadores são identificados e alocados.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 25 de julho de 2018 19:11
    Moderador