É recomendado habilitar o sinalizador de rastreamento 834 para usar página grande no buffer pool para SQL Server em execução no VMware?
As opções de ajuste kb da Microsoft ( https://support.microsoft.com/en-us/kb/920093 ) não mencionam nada sobre virtualização e li em algum lugar que é principalmente para máquinas dedicadas.
Vamos supor que a VM tenha mais de 64 GB de RAM e apresente uma topologia de 2 v-sockets com 8 v-cores por soquete para uma VM de 16 v-core.
O sinalizador de rastreamento de ajuda está dentro do hipervisor?
Páginas grandes alteram a alocação de memória de 4 KB para 2 MB (normalmente), o que significa que o TLB (translation look-aside buffer) é aprimorado na CPU, aumentando o desempenho.
Eu usei com sucesso o sinalizador de rastreamento 834 no servidor de produção no VMware por mais de um ano. Uma parte importante antes de habilitar o sinalizador de rastreamento é que no VMware você deve reservar pelo menos a quantidade de memória dedicada ao SQL Server, isso porque o privilégio lock-pages in memory necessário para habilitar páginas grandes, "trava" a memória para que não t ser trocado (paginado) para o disco. Portanto, se o driver de balloning entrar em ação, ele não tentará forçar a recuperação de memória do SQL Server.
Além disso, o host não deve ser sobrecarregado na memória, caso contrário, o desempenho será prejudicado.
Deve ser testado cuidadosamente se houver ganho de desempenho, portanto, se não tiver certeza, simplesmente não o habilite. Também li que " Páginas grandes podem ser prejudiciais em sistemas NUMA ", mas não tenho certeza se isso se aplica ao Windows/SQL Server
O sinalizador de rastreamento 834 se aplica apenas a versões de 64 bits do SQL Server. Você deve ter o direito de usuário Bloquear páginas na memória para ativar o sinalizador de rastreamento 834. Você pode ativar o sinalizador de rastreamento 834 somente na inicialização.
Eu teria muito cuidado ao usar esse sinalizador em uma VM, pois a memória deles tem um nível extra de abstração.
Tive problemas mais do que suficientes com ele em servidores físicos com muita RAM dedicada ao SQL. Exemplo: com 3 instâncias 2008R2 co-hospedadas ao reiniciar uma delas demorava uma eternidade para voltar porque não conseguia mais encontrar segmentos de memória contíguos.
Os benefícios de desempenho não foram nem aqui nem lá (digamos 'estatisticamente insignificante em geral). Eu o trato como um 'especial TPC'.
Considere também que o 834 também não funciona bem com o columnstore.