none
SQL Server consumindo memória indevida RRS feed

  • Pergunta

  • Amigos, boa tarde,

    Estive monitorando o meu servidor de banco de dados e acabei observando que o SQL Server está consumindo mais memória do que está disponível nas configurações do mesmo. Executei o sql que está na figura abaixo e está apontando 10GB da maneira que configurei e na verdade, ele está consumindo entre 11 e 13 GB, conforme mostra na figura.

    Minha pergunta é: isso é normal? É desta maneira que o SQL Server trabalha ou tem algo errado? Quem puder me explicar, ficarei grato.

    No aguardo de um contato e obrigado a todos!


    segunda-feira, 20 de outubro de 2014 15:41

Respostas

  • José,

    Normalmente a opção AWE não é habilitado em ambientes x64, esta opção é utilizado para ambientes x86 que necessitam fazer basicamente alocação de memória acima de 4Gbs, mas isso em versões mais antigas do SQL Server, no caso 2005!!!

    A partir da versão 2008 este cenário mudou e no SQL Server 2012 o uso do AWE é descartado.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quarta-feira, 22 de outubro de 2014 14:48
    Moderador
  • O max server memory, até o SQL Server 2008R2, delimita apenas o tamanho do buffer pool. Existem alocações de memoria que não estão inclusas nesse buffer, por isso o valor maior.

    http://technet.microsoft.com/en-us/library/ms180797(v=sql.105).aspx

    Abs;

    quarta-feira, 22 de outubro de 2014 17:10
  • José,

    Normalmente a opção AWE não é habilitado em ambientes x64, esta opção é utilizado para ambientes x86 que necessitam fazer basicamente alocação de memória acima de 4Gbs, mas isso em versões mais antigas do SQL Server, no caso 2005!!!

    A partir da versão 2008 este cenário mudou e no SQL Server 2012 o uso do AWE é descartado.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    Junior,

    Concordo com você! Acredito que o AWE possa ser um dos problemas nessa configuração (talvez até seja o único). É preciso verificar outras configurações.

    José

    Seria interessante capturar dados com um SQL Trace ou Profiler, junto com o PerfMon, para analisar como e porque esta crescendo este consumo (pelo menos durante um dia).

    Para maiores informações veja:

    http://technet.microsoft.com/en-us/library/cc966540.aspx

    http://technet.microsoft.com/en-us/library/cc958290.aspx

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quarta-feira, 22 de outubro de 2014 18:00

Todas as Respostas

  • José,

    Aparentemente não foi definido um limite máximo para o consumo de memória nesta instância SQL.

    Utilize o script abaixo para reconfigurar a instância SQL. 

    sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'max server memory', 10240;
    GO
    RECONFIGURE;
    GO

    Em alguns casos é necessário reiniciar o serviço da instância SQL para a alteração entrar em vigor.

    Para maires informações veja:

    http://msdn.microsoft.com/pt-br/library/ms178067.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    segunda-feira, 20 de outubro de 2014 17:23
  • Boa tarde Durval,

    Eu tinha configurado o max server memory sim, conforme print abaixo.

    Tá errado alguma coisa?

    segunda-feira, 20 de outubro de 2014 18:55
  • José,

    Subir um pouco além do limite que você estipulou é normal, mas 3Gb começa a ficar estranho.

    Você já realizou um comparativo de uso da memória sem o AWE?

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    terça-feira, 21 de outubro de 2014 16:56
  • José,

    Normalmente a opção AWE não é habilitado em ambientes x64, esta opção é utilizado para ambientes x86 que necessitam fazer basicamente alocação de memória acima de 4Gbs, mas isso em versões mais antigas do SQL Server, no caso 2005!!!

    A partir da versão 2008 este cenário mudou e no SQL Server 2012 o uso do AWE é descartado.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quarta-feira, 22 de outubro de 2014 14:48
    Moderador
  • O max server memory, até o SQL Server 2008R2, delimita apenas o tamanho do buffer pool. Existem alocações de memoria que não estão inclusas nesse buffer, por isso o valor maior.

    http://technet.microsoft.com/en-us/library/ms180797(v=sql.105).aspx

    Abs;

    quarta-feira, 22 de outubro de 2014 17:10
  • José,

    Normalmente a opção AWE não é habilitado em ambientes x64, esta opção é utilizado para ambientes x86 que necessitam fazer basicamente alocação de memória acima de 4Gbs, mas isso em versões mais antigas do SQL Server, no caso 2005!!!

    A partir da versão 2008 este cenário mudou e no SQL Server 2012 o uso do AWE é descartado.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    Junior,

    Concordo com você! Acredito que o AWE possa ser um dos problemas nessa configuração (talvez até seja o único). É preciso verificar outras configurações.

    José

    Seria interessante capturar dados com um SQL Trace ou Profiler, junto com o PerfMon, para analisar como e porque esta crescendo este consumo (pelo menos durante um dia).

    Para maiores informações veja:

    http://technet.microsoft.com/en-us/library/cc966540.aspx

    http://technet.microsoft.com/en-us/library/cc958290.aspx

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quarta-feira, 22 de outubro de 2014 18:00
  • Durval,

    Então esta é a minha linha de raciocínio inicial, também acho que o AWE pode estar sendo o vilão da história.

    Concordo com a sua sugestão de Monitoramento, de preferência através do Trace File e Perfmon para não gerar muitos impactos de performance.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quinta-feira, 23 de outubro de 2014 14:25
    Moderador
  • Andrei,

    Sim, não verdade este é um comportamento normal do SQL Server alocar um pouco mais de memória do que esta definido no Max Server Memory, mas no caso do nosso amigo José, o SQL Server esta alocando mais 3Gbs, o que representa mais 3072Mbs além do dimensionado.

    Vale sim uma análise e monitoramento.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quinta-feira, 23 de outubro de 2014 14:27
    Moderador