Montar o servidor de produção ideal para o Microsoft SQL Server 2012 pode ser uma tarefa complexa, com variáveis como armazenamento, RAM ou seleção de processador que desafiam até mesmo administradores de TI experientes. Publicamos recentemente uma análise sobre como selecionar o melhor processador Intel Xeon E5-2600 v2 para executar o SQL Server 2012 em ambientes não virtualizados. Além do processador, a RAM é outro componente fundamental ao se considerar as necessidades de desempenho do SQL Server em servidores físicos. Para este teste, utilizamos a mesma plataforma de testes do estudo com processadores Intel, desta vez focando na RAM Micron PC3-12800 com o processador e o armazenamento de melhor desempenho para avaliar seu impacto no desempenho.
Tradicionalmente falando, mais RAM para SQL Server oferece maior desempenho. Aproveitar a RAM adicional reduz o espaço de E/S em uma determinada matriz de armazenamento e também oferece alguns benefícios de armazenamento em cache. Com tudo igual, verificamos quanta RAM você pode dedicar ao SQL Server enquanto ainda mantém um perfil de baixa latência. Neste artigo, mostramos o impacto no desempenho da alocação de 128 GB dedicados ao SQL Server, que é onde atualmente testamos dispositivos para análises corporativas, até 8 GB.
Mesa de teste
Para esta análise, estamos avaliando a memória DDR3 Micron PC3-12800 em um servidor Supermicro SuperStorage Server 2027R-AR24NV executando o Windows Server 2012. Este servidor 2U de dois soquetes suporta as famílias de CPUs Intel E5-2600 e E5-2600 v2. A memória RAM do sistema é composta por dezesseis módulos DIMM Micron PC3-12800 de 16 GB, que permanecem fixos em todos os testes. Para alterar a quantidade de RAM utilizada pelo SQL Server, modificamos a configuração de alocação, limitando-a a um valor selecionado para cada etapa. Utilizamos o SSD Fusion ioMemory PX600 de 2.6 TB para armazenamento no host, que apresentou excelentes resultados de latência com o SQL Server (o produto de última geração mais rápido testado em nosso laboratório).
Configuração do Servidor
- 2 x Processador Intel Xeon E5-2687W v2 – Cache de 25M, 3.40GHz, 8 núcleos
- Chipset Intel C602
- Memória – 256 GB (16 x 16 GB) 1600 MHz Micron DDR3 RDIMMs registrados (128 GB dedicados ao sistema, 8-128 GB dedicados ao SQL)
- 2012 padrão Windows Server
- 3 x Supermicro SAS3 HBAs (controladores LSI SAS 3008)
- SSD de inicialização Micron P200m de 400 GB
- 1 x adaptador Mellanox ConnectX-3 VPI PCIe 3.0 de porta dupla (tecido InfiniBand LoadGen)
- 1 x adaptador Emulex OCe11102 de porta dupla 10 GbE
Configuração de armazenamento
- SanDisk Fusion ioMemory PX600 2.6TB
- 80% de superprovisionamento no modo de alto desempenho
- Consumo de energia total ativado
- Firmware/Drivers VSL 4.1.1
Desempenho
Cada intervalo de incremento de RAM especificado foi testado da mesma maneira: utilizando nosso benchmark OLTP do SQL Server 2012 com o banco de dados localizado no PX600 dentro do servidor Supermicro de nó único e 2P. Como ocorre com a maioria dos dispositivos de armazenamento da mesma classe, não nos preocupamos tanto com o número de transações por segundo; a ênfase está realmente na latência para a conclusão de cada uma dessas transações.
Como esperado, quantidades maiores de RAM alocadas para o servidor SQL geraram maior desempenho transacional. Entre 128 GB e 64 GB, não vimos uma grande mudança no TPS. Na verdade, a queda entre 96 GB para 64 GB permaneceu aproximadamente na mesma margem de erro. A diferença de 16 GB para 8 GB trouxe a maior mudança, o que nos diz que 16 GB é provavelmente o limite útil mínimo para este teste específico e configuração de servidor.
Com foco na latência, vemos o quão bem o Fusion ioMemory PX600 manteve seu desempenho de baixa latência com os resultados de 128 GB, 96 GB e 64 GB pontuando entre 2-3 ms. A queda para 32 GB aumentou a latência em cerca de 66%, mas a próxima queda para 16 GB foi muito mais dramática. Essa alteração aumentou a latência em 200%, que aumentou outros 153% quando a RAM foi reduzida para 8 GB.
Embora o impacto do armazenamento não tenha sido mostrado como parte deste teste, cada passo na alocação de DRAM diminuiu drasticamente a carga vista pelo dispositivo de armazenamento no qual o banco de dados residia. Em suma, mais memória se traduz em menos solicitações atingindo o armazenamento, em vez de permanecerem na memória do sistema. Enquanto 128 GB de RAM tinham uma carga de segundo plano de 50-100 MB/s, 16 GB aumentaram para 800 MB/s (não durante a atividade de gravação de log, que pode causar grandes picos para qualquer configuração de DRAM). Com um meio de armazenamento menor, esses resultados seriam ainda mais elevados.
Conclusão
Ao montar um SQL Server não virtualizado de alto desempenho, há muitas considerações. Na primeira parte, examinamos a CPU e seu impacto no desempenho do SQL. Aqui, usamos o armazenamento interno do host e as CPUs com melhor desempenho para testar a RAM. Em parceria com a Micron, fizemos os mesmos testes, variando de 8 GB a 128 GB de RAM dedicada ao SQL. Os resultados são bastante intuitivos, geralmente com mais RAM sendo melhor em termos de latência. Há um ponto de ruptura onde a latência vê um pico dramático nesta configuração. Com 16 GB, a latência aumenta 3 vezes em comparação com 32 GB e, com 8 GB, o impacto é ainda mais severo. Para melhor desempenho, 128 GB de RAM para SQL com CPUs de alta velocidade e armazenamento PCIe líder geram latência de apenas 2 ms.
Página do produto Crucial/Micron
Selecionando a melhor CPU Intel Xeon E5-2600 v2 para SQL Server 2012




Amazon