Uma pergunta que surge com bastante frequência é como determinar quanta RAM física deve estar em um servidor de banco de dados executando o SQL Server 2012. Uma das primeiras informações necessárias para determinar isso é qual versão e edição do SQL Server você estará executando em seu novo servidor.
Diferentes versões e edições do SQL Server de 64 bits têm limites de licença diferentes para a quantidade de RAM física que podem ser usadas para diferentes finalidades, conforme mostrado na Tabela 1.
Versão | Edição | Limite do mecanismo | Limite de SSAS |
---|---|---|---|
SQL Server 2008 | Padrão | Limite do SO | Limite do SO |
Empresa | Limite do SO | Limite do SO | |
SQL Server 2008 R2 | Padrão | 64 GB | 64 GB |
Empresa | 2 TB | 2 TB | |
Centro de dados | Limite do SO | Limite do SO | |
SQL Server 2012 | Padrão | 64 GB | 64 GB |
Inteligência de Negócios | 64 GB | Limite do SO | |
Empresa | Limite do SO | Limite do SO |
Tabela 1:Limites de RAM do SQL Server por versão e edição
Como você pode ver na Tabela 1, o SQL Server 2008 pode usar até o limite do sistema operacional para RAM física nas edições Standard e Enterprise. Quando a Microsoft lançou o SQL Server 2008 R2, eles tiveram a má ideia (na minha opinião) de introduzir limites mais baixos de RAM física para as edições Standard e Enterprise. Eles também introduziram uma nova Data Center Edition do SQL Server 2008 R2, que tinha o antigo e familiar limite do sistema operacional como limite de licença para RAM física.
Limites de memória do SQL Server 2012
Quando a Microsoft lançou o SQL Server 2012, eles sabiamente se livraram do SKU do Data Center Edition, mas mantiveram o mesmo limite de RAM artificialmente baixo de 64 GB para o Standard Edition. Eu escrevi longamente sobre por que isso é uma má ideia, então não vou recapitular esses argumentos novamente aqui. Basta dizer que é um pouco ridículo ser restrito a usar menos de US $ 800,00 de RAM DDR3 ECC (64 GB vezes US $ 12 / GB) em um novo servidor de dois soquetes que pode custar cerca de US $ 10 a US $ 15 mil para o próprio servidor , mais cerca de US$ 29 mil por dezesseis licenças principais do SQL Server 2012 Standard Edition, sem mencionar seus custos de armazenamento.
Até agora, não há indicação de que a Microsoft tenha intenção de alterar esse limite de RAM para o SQL Server 2014, portanto, talvez tenhamos que continuar a lidar com isso. Um pequeno aspecto positivo desse limite de RAM é que ele é por instância do SQL Server, não por servidor. Isso significa que você pode, com um pouco de reflexão e planejamento, decidir instalar duas ou três instâncias do SQL Server 2012 Standard Edition na mesma máquina física para aproveitar todos os recursos de memória, processador e armazenamento da máquina, se desejar para lidar com o uso extra de recursos e a sobrecarga de gerenciamento de instâncias nomeadas. Isso pode economizar uma quantia significativa de dinheiro em custos de hardware e licenciamento do SQL Server 2012 em comparação a ter dois ou três servidores separados.
Se você decidir manter apenas uma única instância padrão do SQL Server 2012 Standard Edition (que eu prefiro se estiver limitado à Standard Edition), você deve obter apenas 64 GB de RAM para o servidor de banco de dados? Acho que a resposta é um enfático não!
Exemplo de configuração de memória do SQL Server 2012 Standard Edition
Desde a classe de servidor, a RAM DDR3 ECC é tão acessível; Acho que uma quantidade mínima razoável de RAM para um novo servidor de dois soquetes está mais próxima de 96 GB de RAM. Isso permitirá que você defina a configuração de memória máxima do servidor no nível da instância para 65536 MB, que é exatamente 64 GB de RAM, deixando bastante RAM em excesso para o sistema operacional e quaisquer outros aplicativos que possam estar em execução no servidor de banco de dados.
Os principais fornecedores de servidores têm documentação e ferramentas de configuração de memória online que ajudam a garantir que você obtenha a melhor configuração de memória possível para uma quantidade desejada de memória física. Você também pode usar uma ferramenta como CPU-Z para verificar a velocidade da memória do sistema para garantir que ela esteja funcionando na velocidade que você espera.
Por exemplo, a Dell tem uma ferramenta de configuração online aqui. Essa ferramenta permite que você escolha o modelo de servidor Dell desejado, incluindo qual família de processadores você usará (quando tiver escolha) e o número de processadores físicos que realmente estarão no servidor. Em seguida, você insere a quantidade de RAM física que deseja no servidor e escolhe as opções de confiabilidade de memória desejadas (como espelhamento de memória, reserva de classificação etc.), e a ferramenta apresentará três configurações de memória diferentes possíveis:configuração nominal, Desempenho máximo e configuração balanceada. Essas configurações mostram o tipo, número e tamanho dos módulos de memória que você deve usar e quais canais e slots de memória devem ser preenchidos para satisfazer a opção de configuração escolhida.
Se você escolher um servidor de dois soquetes Dell PowerEdge R720, com dois dos novos processadores Intel Xeon E5-2600 v2 de 22 nm (Ivy Bridge-EP) e selecionar 96 GB de RAM sem outras opções de confiabilidade de memória, você receberá três sugestões de memória opções de configuração. A opção de desempenho máximo sugere doze RDIMMs 1R x4 de 8 GB e 1866 MHz, com o Slot 0 nos Canais 1-4 preenchidos e o Slot 1 nos Canais 1-2 preenchidos para cada processador. Isso oferece uma velocidade de memória do sistema de 1866 MHz, que é o máximo suportado pela nova série de processadores Intel Xeon E5-2600 v2.
A propósito, se você estiver usando o SQL Server 2012 Standard Edition, o processador exato que você deseja em um Dell R720 é o Intel Xeon E5-2667 v2, que possui oito núcleos físicos com uma velocidade de clock base de 3,3 GHz. Ter um modelo de contagem de núcleos mais alto atingiria o limite de licença de 16 núcleos físicos para o SQL Server 2012 Standard Edition.
A opção de configuração balanceada sugere doze RDIMMs 1R x4 de 8 GB e 1600 MHz, com o slot 0 nos canais 1-4 preenchidos e o slot 1 nos canais 1-2 preenchidos para cada processador. Isso oferece uma velocidade de memória do sistema de 1600 MHz, que usará um pouco menos de energia elétrica do que a opção de desempenho máximo.
A opção de configuração Nominal sugere vinte e quatro RDIMMs 1R x8 de 4 GB e 1333 MHz com todos os slots em todos os canais preenchidos para cada processador. Isso oferece uma velocidade de memória do sistema de 1333 MHz, com todos os seus slots preenchidos com RDIMMs de 4 GB bem pequenos. Esta é uma escolha menos do que ideal, projetada para economizar algum dinheiro em custos de memória usando DIMMs de menor capacidade e menor velocidade. Infelizmente, há pouca economia monetária real aqui, ao custo de abrir mão de uma quantidade decente de desempenho de memória e não ter nenhum slot de memória vazio.
Com os processadores Intel Xeon série E5-2600 e E5-2600 v2, você obterá a maior largura de banda de memória possível se preencher apenas um ou dois slots por canal de memória. O preenchimento do terceiro slot de memória causa uma diminuição na velocidade da memória do sistema. A maior quantidade de memória que você pode usar na velocidade máxima de memória do sistema usando RDIMMs econômicos de 16 GB é de 256 GB, o que seria dezesseis RDIMMs de 16 GB, preenchendo todos os slots nos canais 1 e 2. RAM em um servidor de dois soquetes com dois processadores da série Xeon E5-2600 ou E5-2600 v2.
Mesmo que seja melhor tentar criar uma configuração de memória que produza a maior velocidade de memória do sistema possível para uma determinada quantidade de RAM, na minha experiência (e na maioria dos benchmarks de aplicativos reais que já vi), a diferença de desempenho no mundo real entre as diferentes velocidades de memória do sistema é muito menor do que você poderia esperar, muitas vezes na faixa de 5-10% ou menos. Para uso do SQL Server Enterprise Edition, prefiro ter RAM suficiente para caber toda a minha carga de trabalho no pool de buffers em vez de escolher uma quantidade menor de RAM para obter a maior velocidade de memória possível ao custo de ter que extrair dados do subsistema de armazenamento mais frequentemente. Mesmo a RAM “lenta” tem uma latência muito menor do que qualquer tipo de subsistema de armazenamento, incluindo armazenamento baseado em flash.
Se minha carga de trabalho não couber em 256 GB de RAM, prefiro adicionar mais RAM e reduzir a velocidade da memória do sistema, em vez de ter que acessar o subsistema de armazenamento muito mais lento com mais frequência. Então, para recapitular, acho que o ponto ideal de memória para o SQL Server 2012 Standard Edition para esse tipo de servidor é de 96 GB, subindo para 256 GB para o SQL Server 2012 Enterprise Edition (a menos que sua carga de trabalho seja maior que 256 GB).