Estou tentando escrever uma especificação para um servidor de data warehouse para nossa atualização planejada de data warehouse.
À medida que executamos servidores virtuais nos hosts VMWare, temos a capacidade de adicionar ou remover recursos, conforme necessário. No passado, adicionamos RAM e CPU de forma incremental, conforme necessário. À medida que nossas demandas aumentam, pressionamos por mais recursos. (principalmente disco e RAM).
Pedimos mais. Eles nos dão o mínimo possível.
No entanto, recentemente, sempre que falamos de recursos, agora somos criticados por não especificar a máquina em primeiro lugar, e agora me dizem que os hosts de desenvolvimento estão com o máximo de capacidade, não há mais RAM disponível.
Somos uma pequena organização do governo local com ~ 50 usuários regulares do DW. No uso diário normal, ele funciona bem. Temos um bom desempenho de consulta mdx e nossos relatórios e painéis são rápidos. Os usuários estão felizes.
No entanto, nossos processos ETL são executados durante a noite toda e estamos começando a ver evidências de pressão de memória ao processar datamarts simultaneamente. Na noite passada, o SSIS falhou com avisos sobre um "erro de falta de memória".
Nosso servidor DW existente é o Win 2008 R2 com 4 CPUs e 16 GB de RAM executando o SQL 2012 Std. Eu tenho memória máxima do servidor definida para 12 GB, deixando 4 GB para SO e serviços etc. Nosso DW existente possui 3 datamarts / cubos OLAP, e estamos desenvolvendo mais 2.
+----------+----------+---------------+-----------+---------------+
| Datamart | Files GB | Fact (Rows) | Fact (Mb) | ETL & Process |
| OLAP cube| | | | Time (hours) |
+----------+----------+---------------+-----------+---------------+
| PBI | 3 | 190,000 | 180 | 0.2 |
| FBI | 30 | 26,100,000 | 10,000 | 1.5 |
| RBI | 175 | 62,000,000 | 32,000 | 8.3 |
| ABI* | 100 | 44,050,000 | 21,000 | 4.0 |
| EBI* | 11 | 100,000,000 | 6,000 | 2.0 |
+----------+----------+---------------+-----------+---------------+
* Planned/Estimated
Nosso novo servidor está planejado para ser o Win 2012 executando o SQL 2016 Enterprise. Ele executará SQL, SSIS, SSRS e SSAS. O armazenamento não é um problema, mas não tenho certeza sobre RAM e CPU.
De acordo com o Guia de referência do Fast Track Data Warehouse para SQL Server 2012 , o mínimo que devo ter é 128 GB para uma máquina de 2 soquetes ... o que parece um pouco excessivo. Os requisitos de hardware e software para instalar o SQL Server 2016 recomendam um mínimo de 4Gb de RAM para o SQL 2016. Isso é bastante diferente!
Então .. Qual é um bom ponto de partida? 32Gb? 64GB? Como justifico minha posição inicial (especificação) para a TI?
Existem bons guias sobre como calcular os recursos do servidor?
Existem boas regras de ouro?
Quais são os principais ingredientes / métricas para o dimensionamento da RAM em um contexto de DW?
- O volume de dados?
- O número de cubos?
- Quanto tempo leva para fazer ETL ou processar um cubo?
- Pico de carga de processamento durante a noite ou desempenho conforme visualizado pelos usuários finais durante o dia?