none
SQL Server + AD RRS feed

  • Pergunta

  • Pessoal, queria uma ajuda em relação a escolha de um servidor.

    Atualmente posso um computador com processador i7 920 + 12gb de memória + 4 hd´s de 500gb em RAID10 e 2 hd´s de 500gb em RAID0, com o Windows Server 2008 R2 instalado, SQL SERVER 2008 STD para 1 processador.

    Neste servidor, além de ser o servidor do banco de dados, tenho instalado o AD e o server da trendmicro (antivirus). Tenho notado no monitoramento do gerenciador do Windows que chega a ficar livre apenas 800mb de memória dos 12gb. A empresa possui mais ou menos 100 máquinas. Como estamos incluindo outras filiais no sistema, acredito que chegaremos a 150 máquinas.

    Na instalação do SQL não recomendam a instalação do AD junto, porque? É questão de segurança ou de desempenho? Outra dúvida, estou pensando em comprar um servidor com 2 processadores Xeon E5520 S1366 2,26GHz 8MB  e 12 slots de memória RAM (pensei em colocar as 12 memórias de 2gb cada). Eu migrando para o novo servidor faria diferença em relação a performance?

    O meu medo maior é continuar aumentando a empresa e esbarrar nessa questão da memória, sendo que só o SQL SERVER está consumindo mais de 4gb!

    Alguém poderia me ajudar com relação a configuração idela para rodar o SQL tranquilamente para evitar problemas futuros?

    Grato,

    Gabriel Fernandes

    domingo, 25 de julho de 2010 23:05

Respostas

  • Boa noite, completando a resposta...

    A memória e processador faz muita diferença no servidor.. porém se você tem um sistema que não trabalha bem com gerenciamento de locks, os problemas podem aumentar proporcionalmente a quantidade de memória e processador...

    Isto porque as transações começam a ser processadas mais rapidamente e as colisões tornan-se muito comuns. Para entender um pouco mais sobre essa situação, devemos ter em mente as 3 principais funções que o sql server usa para escrever páginas em um disco: lazy write, checkpoint, eager write.

    Executa uma busca com algoritmo Hash, onde eu evito colisões acrescentando ao mod a posição do item na pilha por exemplo... posição porque cada página possui uma trilha (array que identifica uma página) de buffer, uma estrutura que possui informações como páginas sujas, lru e io. Então enquanto o bloqueio controla o nível de colisões, o latch controla o acesso ao disco (muito mais lento que a memória). O Sql compensa a lentidão do disco, evitando requisições de IO, usando um extent. Sendo carregadas de uma única vez usando a API: WriteFileGather. E graças a trilha destas páginas que o sql server consegue por exemplo manter um mix de páginas em um único extent. Enfim.. este texto todo só para explicar que em situações muito raras o aumento de recursos pode preojudicar o ambiente. (Apenas para conhecimento, isto é visto somente em ambiente super gigantescos, mas ficam nomes de funções que podem ser pesquisadas no futuro para aumentar sua curiosidade sobre a engine do sql).

    Geralmente o split (divisão) de hds é recomendado em ambientes de empresas dispostas a investir em infra... a vantagem é que cada arquivo terá a seu dispor um disco inteiro para eles.. sem concorrência, ou seja, se o page file estiver em um raid 0 (excelente escrita e leitura), o mdf em um raid 5 (redundância com excelente velocidade de leitura mas com baixa taxa de escrita) o ldf em um raid 1 (boa taxa de leitura e uma taxa aceitável de escrita), nunca teremos problemas com o banco se a paginação do windows for aumentada por exemplo...tudo porque cada disco terá sua responsábilidade, sem concorrer ios para paginar, ler arquivos de sistemas e etc... além de você poder mensurar melhor o tamanho de cada bloco de disco.. já que o windows trabalha com páginas de dados de 4 kbytes e o sql com páginas de 8 kbytes...

    Bom no mais o interessante é você criar procedimentos para coletar estas informações por certos períodos e colocar em uma planilha, traçando o uso e identificando tendência para os próximos X anos, versus perspectiva de crescimento de sua organização.. desta forma você terá o melhor hardware possível para seu ambiente, sem super dimencioná-lo, ou, pior... sem que aguente a carga atual de seus dados.

    Atenciosamente

    Dobereiner Miller Silva Rodrigues

    sqlinternal.blogspot.com


    Aquilo que sou é aquilo que me foi outorgado
    terça-feira, 27 de julho de 2010 06:56

Todas as Respostas

  • Gabriel,

    Espero poder ajudar, respondendo suas dúvidas:

    Na instalação do SQL não recomendam a instalação do AD junto, porque?

    --Principalmente por questão de desempenho.

    Outra dúvida, estou pensando em comprar um servidor com 2 processadores Xeon E5520 S1366 2,26GHz 8MB  e 12 slots de memória RAM (pensei em colocar as 12 memórias de 2gb cada). Eu migrando para o novo servidor faria diferença em relação a performance?

    --Lógicamente quanto mais memória você disponibilizar no seu ambiente e dependendo da versão do SQL Server, você terá sim ganhos de performance.

    Agora você possui um ambiente atualmente capaz de trabalhar com esta quantidade de transações e estações de trabalho, mas gostaria destacar que na mesma máquina que você possui o SQL Server instalado não é recomendável ter um servidor de antivírus, pois o consumo de memória e utilizado de disco é muito grande.

    O que você poderia começar a pensar é deixar este SQL Server instalado separadamente em outra máquina. Outro detalhe quando trabalhamos com SQL Server a utilização de RAID 1 poderá gerar alguns gargalos em relação a utilização de disco ser realizada duplamente.

     


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    segunda-feira, 26 de julho de 2010 23:56
    Moderador
  • Gabriel,

    Espero poder ajudar, respondendo suas dúvidas:

    Na instalação do SQL não recomendam a instalação do AD junto, porque?

    --Principalmente por questão de desempenho.

    Outra dúvida, estou pensando em comprar um servidor com 2 processadores Xeon E5520 S1366 2,26GHz 8MB  e 12 slots de memória RAM (pensei em colocar as 12 memórias de 2gb cada). Eu migrando para o novo servidor faria diferença em relação a performance?

    --Lógicamente quanto mais memória você disponibilizar no seu ambiente e dependendo da versão do SQL Server, você terá sim ganhos de performance.

    Agora você possui um ambiente atualmente capaz de trabalhar com esta quantidade de transações e estações de trabalho, mas gostaria destacar que na mesma máquina que você possui o SQL Server instalado não é recomendável ter um servidor de antivírus, pois o consumo de memória e utilizado de disco é muito grande.

    O que você poderia começar a pensar é deixar este SQL Server instalado separadamente em outra máquina. Outro detalhe quando trabalhamos com SQL Server a utilização de RAID 1 poderá gerar alguns gargalos em relação a utilização de disco ser realizada duplamente.

     


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


    Junior, agradeço pela resposta.

    Vamos às dúvidas... Estou utilizando a versão 2008 do SQL com SP1, a memória e o processamento fariam tanta diferença assim?

    É interessante instalar o MS SQL em uma máquina a parte e por exemplo colocar somente o banco de dados em outro computador da rede, por exemplo, com Linux? Ou é bem melhor utilizar tudo em uma máquina só? Hoje fiquei monitorando as atividades no Windows Server e percebi que está havendo realmente um gargalo em relação ao HD. Pensei em fazer a seguinte divisão. Um HD em RAID 1 para SO + SQL, outro HD em RAID 1 para os BD´s master, log, etc e outro HD (estes com 15rpm) com RAID 1 para ficar somente a base de produção mesmo. Esta seria uma configuração recomendada? Estou pensando no RAID 1 por causa da segurança dos dados, ou você recomendaria alguma outra configuração?

    Posso utilizar o AD e TS na mesma máquina ou teriam de ser separados mesmo?

    Posso/devo instalar um cliente do antivirus no Servidor do BD ou realmente é melhor não deixar nenhum compartilhamento nem nada nele?

    Desde já agradeço pela ajuda.

    Gabriel Fernandes

    terça-feira, 27 de julho de 2010 01:56
  • Boa noite, completando a resposta...

    A memória e processador faz muita diferença no servidor.. porém se você tem um sistema que não trabalha bem com gerenciamento de locks, os problemas podem aumentar proporcionalmente a quantidade de memória e processador...

    Isto porque as transações começam a ser processadas mais rapidamente e as colisões tornan-se muito comuns. Para entender um pouco mais sobre essa situação, devemos ter em mente as 3 principais funções que o sql server usa para escrever páginas em um disco: lazy write, checkpoint, eager write.

    Executa uma busca com algoritmo Hash, onde eu evito colisões acrescentando ao mod a posição do item na pilha por exemplo... posição porque cada página possui uma trilha (array que identifica uma página) de buffer, uma estrutura que possui informações como páginas sujas, lru e io. Então enquanto o bloqueio controla o nível de colisões, o latch controla o acesso ao disco (muito mais lento que a memória). O Sql compensa a lentidão do disco, evitando requisições de IO, usando um extent. Sendo carregadas de uma única vez usando a API: WriteFileGather. E graças a trilha destas páginas que o sql server consegue por exemplo manter um mix de páginas em um único extent. Enfim.. este texto todo só para explicar que em situações muito raras o aumento de recursos pode preojudicar o ambiente. (Apenas para conhecimento, isto é visto somente em ambiente super gigantescos, mas ficam nomes de funções que podem ser pesquisadas no futuro para aumentar sua curiosidade sobre a engine do sql).

    Geralmente o split (divisão) de hds é recomendado em ambientes de empresas dispostas a investir em infra... a vantagem é que cada arquivo terá a seu dispor um disco inteiro para eles.. sem concorrência, ou seja, se o page file estiver em um raid 0 (excelente escrita e leitura), o mdf em um raid 5 (redundância com excelente velocidade de leitura mas com baixa taxa de escrita) o ldf em um raid 1 (boa taxa de leitura e uma taxa aceitável de escrita), nunca teremos problemas com o banco se a paginação do windows for aumentada por exemplo...tudo porque cada disco terá sua responsábilidade, sem concorrer ios para paginar, ler arquivos de sistemas e etc... além de você poder mensurar melhor o tamanho de cada bloco de disco.. já que o windows trabalha com páginas de dados de 4 kbytes e o sql com páginas de 8 kbytes...

    Bom no mais o interessante é você criar procedimentos para coletar estas informações por certos períodos e colocar em uma planilha, traçando o uso e identificando tendência para os próximos X anos, versus perspectiva de crescimento de sua organização.. desta forma você terá o melhor hardware possível para seu ambiente, sem super dimencioná-lo, ou, pior... sem que aguente a carga atual de seus dados.

    Atenciosamente

    Dobereiner Miller Silva Rodrigues

    sqlinternal.blogspot.com


    Aquilo que sou é aquilo que me foi outorgado
    terça-feira, 27 de julho de 2010 06:56
  • Boa noite, completando a resposta...

    A memória e processador faz muita diferença no servidor.. porém se você tem um sistema que não trabalha bem com gerenciamento de locks, os problemas podem aumentar proporcionalmente a quantidade de memória e processador...

    Isto porque as transações começam a ser processadas mais rapidamente e as colisões tornan-se muito comuns. Para entender um pouco mais sobre essa situação, devemos ter em mente as 3 principais funções que o sql server usa para escrever páginas em um disco: lazy write, checkpoint, eager write.

    Executa uma busca com algoritmo Hash, onde eu evito colisões acrescentando ao mod a posição do item na pilha por exemplo... posição porque cada página possui uma trilha (array que identifica uma página) de buffer, uma estrutura que possui informações como páginas sujas, lru e io. Então enquanto o bloqueio controla o nível de colisões, o latch controla o acesso ao disco (muito mais lento que a memória). O Sql compensa a lentidão do disco, evitando requisições de IO, usando um extent. Sendo carregadas de uma única vez usando a API: WriteFileGather. E graças a trilha destas páginas que o sql server consegue por exemplo manter um mix de páginas em um único extent. Enfim.. este texto todo só para explicar que em situações muito raras o aumento de recursos pode preojudicar o ambiente. (Apenas para conhecimento, isto é visto somente em ambiente super gigantescos, mas ficam nomes de funções que podem ser pesquisadas no futuro para aumentar sua curiosidade sobre a engine do sql).

    Geralmente o split (divisão) de hds é recomendado em ambientes de empresas dispostas a investir em infra... a vantagem é que cada arquivo terá a seu dispor um disco inteiro para eles.. sem concorrência, ou seja, se o page file estiver em um raid 0 (excelente escrita e leitura), o mdf em um raid 5 (redundância com excelente velocidade de leitura mas com baixa taxa de escrita) o ldf em um raid 1 (boa taxa de leitura e uma taxa aceitável de escrita), nunca teremos problemas com o banco se a paginação do windows for aumentada por exemplo...tudo porque cada disco terá sua responsábilidade, sem concorrer ios para paginar, ler arquivos de sistemas e etc... além de você poder mensurar melhor o tamanho de cada bloco de disco.. já que o windows trabalha com páginas de dados de 4 kbytes e o sql com páginas de 8 kbytes...

    Bom no mais o interessante é você criar procedimentos para coletar estas informações por certos períodos e colocar em uma planilha, traçando o uso e identificando tendência para os próximos X anos, versus perspectiva de crescimento de sua organização.. desta forma você terá o melhor hardware possível para seu ambiente, sem super dimencioná-lo, ou, pior... sem que aguente a carga atual de seus dados.

    Atenciosamente

    Dobereiner Miller Silva Rodrigues

    sqlinternal.blogspot.com


    Aquilo que sou é aquilo que me foi outorgado


    Perfeita a explicação. Só me tire mais uma dúvida por gentileza.

    Irei fazer o backup do próprio servidor e posteriormente o arquivo será movido para outro computador da rede. Minha dúvida é a seguinte. Qual HD devo criar o backup? No RAID10 com disco de 15.000rpm que terá só a base de produção, RAID10 disco de 7.200rpm onde terá o sistema operacional ou no RAID1 disco de 7.200rpm onde terá os arquivos de log e as tabelas masters, etc...?

    Desde já agradeço.

    segunda-feira, 9 de agosto de 2010 19:15