none
Qual a melhor configuração de Alocação de Memória para o SQL Server 2008 RRS feed

  • Pergunta

  • Tenho um servidor Intel Xeon 2,40Ghz com 24GB de memória, com Windows Server 2008 Standart, e nele esta rodando o SQL Server 2008. Com  25 usuários usando o banco de dados via ERP.

    Gostaria de saber qual a melhor configuração para alocação de memória nesse meu servidor. 

    Atualmente esta alocado da seguinte forma:

    SERVER MEMORY OPTIONS

    (Esta Habilitado) USE AWE TO ALLOCATE MEMORY 

    Minimum Server Memory = 0 (in MB)

    Maximum Server Memory = 14000 (in MB)

    Other Memory Options 

    Index Creation Memory (in KB, 0 = Dynamic Memory) = 0

    Minimum Memory per guery (in KB) = 1024

    (Esta Habilitado) Configured Values

    Devo mudar algo para melhorar o desempenho do Banco de Dados SQL Server?

    quarta-feira, 5 de fevereiro de 2014 12:23

Respostas

  • BKS_DBA,

    Antes de mais nada, desabilite o AWE TO ALLOCATE MEMORY para que o SQL Server. Além de ser um recurso que será descontinuado ele gera processamento extra para que o SQL Server possa utilizar os recursos de memória.

    Isto hoje, não é considerado uma boa prática. Veja mais sobre no link abaixo:

    http://technet.microsoft.com/pt-br/library/ms190673(v=sql.105).aspx

    Sobre a quantidade mínima de memória eu concordo com o Junior, é importante que sua instância SQL seja inicializada com um mínimo reservado para uso.

    O Index Creation Memory e o Minimum Memory per guery, também não devem estar zerado, principalmente se outros usuários tem acesso para criação ou Rebuild de índices. Isto é algo que deve ser analisado em seu ambiente, mas não imagino que deve ser menor que 16Mb (16384 Kb) por consulta.

    Sobre cálculos para determinar a memória, isto é relativo. Já vi servidores com 8Gb de RAM executarem melhor do que servidores de 96Gb só por questões de configuração, com mais de 70% de memória alocada para o SQL Server.

    Tanto o SQL Server como o Windows Server utilizam muito mais memória RAM do que processamento de CPU, tenha isto em mente. Se houver outros serviços ou Produtos compartilhando CPU e memória talvez você tenha que equilibrar estas medidas, mas com certeza não existe a "fórmula mágica". 

    Veja que no caso do Windows Server 2008 Standart (utilizado neste caso), o mínimo recomendado é 2Gb de RAM. Desta forma, tenha mais do que isto livre para operar em seu servidor. Veja abaixo os requisitos deste SO:

    http://technet.microsoft.com/pt-br/windowsserver/bb414778.aspx

    Para o SQL Server 2008, existe uma variação do mínimo recomendado. Veja os requisitos no link abaixo:

    http://msdn.microsoft.com/pt-br/library/ms143506(v=sql.100).aspx

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

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Marcado como Resposta BKS_DBA quarta-feira, 5 de fevereiro de 2014 15:42
    • Não Marcado como Resposta BKS_DBA quarta-feira, 5 de fevereiro de 2014 15:45
    • Marcado como Resposta BKS_DBA quarta-feira, 5 de fevereiro de 2014 16:01
    • Não Marcado como Resposta BKS_DBA quarta-feira, 5 de fevereiro de 2014 16:02
    • Marcado como Resposta BKS_DBA quarta-feira, 5 de fevereiro de 2014 16:02
    quarta-feira, 5 de fevereiro de 2014 14:11

Todas as Respostas

  • BKS,

    Eu particularmente não gosto de deixar o valor mínimo com Zero, por questões de alocação inicial dos serviços no momento da inicialização do SO.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 5 de fevereiro de 2014 12:38
    Moderador
  • BKS, Não deixe a Minimum Server Memory zerado deixe com no minimo 2042 (in MB) por questões de subida de serviços ou de inicio de transações. Maximum Server Memory é aconselhado que deixe 60% da capacidade do servidor ou seja 14 GB x 1024 = 14336 MB Index Creation Memory não há necessidade de alocarmos memoria para a criação de Index em um servidor de ERP com pouco movimento. Minimum Memory per guery pode manter os 1024 KB
    quarta-feira, 5 de fevereiro de 2014 12:58
  • BKS_DBA,

    Antes de mais nada, desabilite o AWE TO ALLOCATE MEMORY para que o SQL Server. Além de ser um recurso que será descontinuado ele gera processamento extra para que o SQL Server possa utilizar os recursos de memória.

    Isto hoje, não é considerado uma boa prática. Veja mais sobre no link abaixo:

    http://technet.microsoft.com/pt-br/library/ms190673(v=sql.105).aspx

    Sobre a quantidade mínima de memória eu concordo com o Junior, é importante que sua instância SQL seja inicializada com um mínimo reservado para uso.

    O Index Creation Memory e o Minimum Memory per guery, também não devem estar zerado, principalmente se outros usuários tem acesso para criação ou Rebuild de índices. Isto é algo que deve ser analisado em seu ambiente, mas não imagino que deve ser menor que 16Mb (16384 Kb) por consulta.

    Sobre cálculos para determinar a memória, isto é relativo. Já vi servidores com 8Gb de RAM executarem melhor do que servidores de 96Gb só por questões de configuração, com mais de 70% de memória alocada para o SQL Server.

    Tanto o SQL Server como o Windows Server utilizam muito mais memória RAM do que processamento de CPU, tenha isto em mente. Se houver outros serviços ou Produtos compartilhando CPU e memória talvez você tenha que equilibrar estas medidas, mas com certeza não existe a "fórmula mágica". 

    Veja que no caso do Windows Server 2008 Standart (utilizado neste caso), o mínimo recomendado é 2Gb de RAM. Desta forma, tenha mais do que isto livre para operar em seu servidor. Veja abaixo os requisitos deste SO:

    http://technet.microsoft.com/pt-br/windowsserver/bb414778.aspx

    Para o SQL Server 2008, existe uma variação do mínimo recomendado. Veja os requisitos no link abaixo:

    http://msdn.microsoft.com/pt-br/library/ms143506(v=sql.100).aspx

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

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Marcado como Resposta BKS_DBA quarta-feira, 5 de fevereiro de 2014 15:42
    • Não Marcado como Resposta BKS_DBA quarta-feira, 5 de fevereiro de 2014 15:45
    • Marcado como Resposta BKS_DBA quarta-feira, 5 de fevereiro de 2014 16:01
    • Não Marcado como Resposta BKS_DBA quarta-feira, 5 de fevereiro de 2014 16:02
    • Marcado como Resposta BKS_DBA quarta-feira, 5 de fevereiro de 2014 16:02
    quarta-feira, 5 de fevereiro de 2014 14:11