locked
Memória para Servidor rodando SQL Server 2005 RRS feed

  • Pergunta

  • Ola experts,

    Sou novo com o SQL SERVER 2005, estou estudando muito para aprender e dominar o mais rápido possível. Estamos implantando um servidor Intel Xeon Dual 3.4 com 2GB de memoria e SQL Server 2005. Esse servidor tem capacidade maxima para 16GB.

    Nossa rede tem 20 usuarios.

    Pergunta: Vamos ter mais ou menos 15 usuarios acessando ao mesmo tempo o Servidor utilizando uma aplicação fazendo consultas, inserindo dados no SQL SERVER 2005, quanto minimo de memoria precisaria para não ter problema de performance ?

    Obrigado.


    Anderson Muniz
    segunda-feira, 24 de janeiro de 2011 11:56

Respostas

  • Olá Anderson,

    Recomendo que você siga as instruções do Storage Top 10 Best Practices - http://technet.microsoft.com/en-us/library/cc966534.aspx para não ter problemas com gargalos de Disco. O SQL server é um aplicativo com alto consumo de IO e portanto você deve tomar muito cuidado com a alocação dos arquivos de banco de dados para que eles não concorram entrs si e com outros aplicativos do SO.

     

    Se quiser podemos discutir através do msn ... me passa seus dados.

     

    Abraços,


    Fábio Oliveira Support Engieer | Microsoft Enterprise and Developer Support
    segunda-feira, 31 de janeiro de 2011 13:57
  • Olá Anderson,

    Recomendo que você siga as instruções do Storage Top 10 Best Practices - http://technet.microsoft.com/en-us/library/cc966534.aspx para não ter problemas com gargalos de Disco. O SQL server é um aplicativo com alto consumo de IO e portanto você deve tomar muito cuidado com a alocação dos arquivos de banco de dados para que eles não concorram entrs si e com outros aplicativos do SO.

     

    Se quiser podemos discutir através do msn ... me passa seus dados.

     

    Abraços,


    Fábio Oliveira Support Engieer | Microsoft Enterprise and Developer Support

    Ola fabio, pow gostaria, meu msn andybr bol com br

    Valeu pelos feedbacks. Me ajudaram bastante.


    Anderson Muniz
    segunda-feira, 7 de fevereiro de 2011 15:46

Todas as Respostas

  • Anderson,

     

    Claro que tudo ira depender de seu ambiente e das ações realizadas nele, porem, em todos os meus servidores, eu tento seguir um padrão de memoria:

    Como só tenho servidores com 16 e 32gb, segue "minha regra":

    servidor total -> 16GB

    SO (Disco C) -> 2GB

    SQL (Memoria max) -> 14GB

    Servidor total -> 32GB

    SO (Disco C) -> 3GB

    SQL (Memoria max) -> 29GB

    segunda-feira, 24 de janeiro de 2011 12:15
    Moderador
  • Anderson O. Muniz, bom dia!

     

    Algumas considerações são necessárias  como:

     

    1 - Mensurar tamanho de crescimento da base de dados. 

    2 - Realizar configuração no SQL Server de MAX Server Memory.

     

    1 - Mensurar tamanho de crescimento da base de dados. 

    Essa fase é muita importante, porque engloba parte física da construção do SQL Server. Isso quer dizer que isso está diretamente ligado as suas configurações. Inicialmente é dificil saber como irá ser o comportamento da Aplicação com o banco de dados. Mais seu servidor é bom, na verdade sempre procure fazer algumas análises semanalmente, como: 

    Verificar o Tamanho as Bases de Dados - Utilize DMV's e veja os arquivos dos dados.

    Verificar Quantidade de Acessos no Banco de Dados - Utilize DMV's, Profiler.

    Verificar Quantidade de Memória Usada pelo SQL Server - Utilize PerfMon e PAL (Performance Analysis Of Log).

     

    2 - Realizar configuração no SQL Server de MAX Server Memory.

    Na verdade ter 2GB de memória no servidor não quer dizer que o SQL Server irá utilizar isso sempre. Podem ter vários casos, mas além do SQL Server você tera utilização de outros processos dentro do servidor, então utilize o MAX Server Memory no sp_configure do SQL Server para indicar quanto o SQL Server pode utilizar do sistema e além disso, pesquise sobre AWE e PAE.

     

    Em geral com poucas informações é difícil de realizar um diagnóstico completo, mais acho que isso pode ser útil para você. Aproveite e veja o que o caputofa escreveu, pegue como exemplo

     

    Att,

     


    Luan.Moreno MCP || MCTS SQL Server 2005 Blog: http://luanmorenodba.wordpress.com Twitter: @luansql Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 24 de janeiro de 2011 12:34
  • Olá Anderson Muniz,

    O caputofa e o Luan.Moreno estão corretos.

    Eu faria somente alguns ajustes em relação ao seu ambiente por ser bem pequeno (conforme você descreveu somente 20 usuários)

    Servidor total -> 16GB
    SO -> 4GB (É sempre bom lembrar que memoria para o SO também nunca é d+)
    SQL -> 4GB (é mais que suficiente para suportar a quantidade de usuarios e as possíveis transações que eles irão executar em seu SQL)

    USE master;
    GO
    EXEC
    sp_configure 'show advanced option', '1';
    RECONFIGURE;
    EXEC sp_configure 'max server memory', '4096';
    RECONFIGURE WITH OVERRIDE;
    Exec sp_configure;

    Desta forma você irá poupar recursos para adicionar mais algumas instancias de SQL neste mesmo servidor caso seja necessário.

    Recomendação: utilize arquitetura x64 e você irá possuir um sistema com melhor suporte para gerenciamento de memoria.

    qualquer duvida me procure

    Abraços,


    Fábio Oliveira Support Engieer | Microsoft Enterprise and Developer Support
    quarta-feira, 26 de janeiro de 2011 20:24
  • Anderson,

    se a instalação for feita com os 2GB que você comentou, configure a memória de acordo com esse valor, não esquecendo que o SO, dependendo da versão,  consome bastante memória. Eu diria que genrericamente, os novos Windows consomem 500MB de RAM

    Eu consideraria também o seguinte:

    1 - O Windows fornece aos processos do SO memória virtual, no entanto, se o consumo total for maior do que memória física, vai haver paginação, o que é ruim porque envolve I/O de disco que é muito mais lento que de memória RAM

    2 - Caso aumente a quantidade de RAM para mais que 4GB e esteja usando máquina 32bits, usar o /AWE ou /PAE para aumentar memória disponível para processo de usuários. Caso use 64bits, o SO vai conseguir endereçar toda a memória sem problemas.

    3 - Considere que na prática é difícil haver 20 usuários realizando ativiadades no servidor ao mesmo tempo. É mais importante saber  a quantidade de conexões ativas e se há alguma específica consumindo muito recurso do servidor. Vale lembrar também que, independente de estar ativa ou não, cada conexão fica com memória alocada o tempo todo.

    4 - Por fim, eu instalaria o SQL com os 2GB e faria um stress test com as aplicações que usarão bases no mesmo. Depois desta homologação, seria possível identificar quantidade de memória necessária.

     


    Se a resposta resolveu sua questão ou problema, classifique-a para manter a qualidade do forum e a confiabilidade dos participantes.

    Alex M. Bastos
    http://bastosalex.spaces.live.com
    quinta-feira, 27 de janeiro de 2011 12:14
  • Ola experts,

    Muito obrigado pelo feedback me ajudou bastante. Com essa suas respostas consigo visualizar e me precaver de gargalo.

    Outra duvida,

    Nesse servidor terei três instancias.

    Meu servidor terá maximo de 16GB

    Entao ficará assim:

    SO = 2GB

    SQL = 14 GB (isso inclui as 3 instancias ?)

    Muito obrigado mais uma vez.

    Anderson Muniz


    Anderson Muniz
    sexta-feira, 28 de janeiro de 2011 17:32
  • Olá Anderson,

    Como havia mencionado no meu post anterior sua configuração para 3 instances de SQL ficaria assim (essa é Minha sugestão, mas você pode preparar este Neston do jeito que ahcar melhor =))

    Servidor total -> 16GB
    SO -> 4GB (É sempre bom lembrar que memoria para o SO também nunca é d+)
    SQL -> 4GB (ou menos) Instance 01
    SQL -> 4GB (ou menos) Instance 02
    SQL -> 4GB (ou menos) Instance 03

    é mais que suficiente para suportar a quantidade de usuarios e as possíveis transações que eles irão executar em seu SQL

    Tente utilizar uma ferramenta de Stress Test para determinar a melhor configuração para seu ambiente.
    Atualmente existe uma ferramenta da Microsoft para SQL, mas é somente indicada para testar principalmente IO
    How to use the SQLIOSim utility to simulate SQL Server activity on a disk subsystem - http://support.microsoft.com/kb/231619/en-us

    Recomendação: Experiência de Engenheiro de suporte Microsoft não deixe somente 2Gb para o seu sistema operacional para que seu sistema não seja victma de exaustão de recursos no futuro. O planejamento de uma instalação é a parte mais importe do projeto :)

    Espero que ajude!!!


    Fábio Oliveira Support Engieer | Microsoft Enterprise and Developer Support
    sexta-feira, 28 de janeiro de 2011 17:56
  • Olá Fabio,

    Muito obrigado pela informação.

    Outra perguntinha, estou testando a aplicação, hoje tem somente 4 usuarios acessando a apliacação com somente 2GB de Memoria no servidor por enquanto (testes), e o servidor fica sem memoria disponivel e tem momentos que o servidor fica extremamente lento e algumas vezes a aplicação perde a comunicação com o servidor.

    Pergunta, 4GB de memoria é suficiente ou depende de como foi feito a aplicação ou como está configurado o SQL SERVER 2005 ?

    Obrigado mais uma vez.

    Abraço,

    Anderson Muniz


    Anderson Muniz
    sexta-feira, 28 de janeiro de 2011 18:47
  • Olá Anderson,

    Olha só Performance de SO, SQL, Exchange, IIS(applications) é uma arte !!!

    É preciso entender todo o processo para te responder está pergunta....

    Como inicio posso te sugerir o seguinte:

    1- Faça uma coleta de profile tracer enquanto efetua os testes e utilize o DTA para verificar se você consegue dar um tunning na sua base

    2- Veja se você não possui outros softwares rodando no mesmo momento do teste ex.
    a.) Anti-vírus (Este cara está sempre no limbo nunca no céu e nem no inferno... alguns aqui dizem que é como mulher: é dificil viver com elas, mas não dá pra viver sem :>)
    b.) Veja se você não possui alguma ferramenta de monitoramento (SCCM, SCOM, Agent SMS, Qualquer outra ferramenta de monitoramento)

    3- Utilize PerfMon para monitorar o servidor durante os teste e tente identificar os possíveis "Gargalos" ...  seu servidor pode estar sofrendo de um problema de IO

    Até o momento ficamos discutindo neste post a disposição de memoria do seu servidor, mas em nenhum momento falamos de Discos e processadores

    Veja o artigo:
    Storage Top 10 Best Practices - http://technet.microsoft.com/en-us/library/cc966534.aspx

    Artigos Relacionados:
    SQL Server Best Practices - http://msdn.microsoft.com/en-us/sqlserver/bb671432


    Espero que ajude!!!

     

     


    Fábio Oliveira Support Engieer | Microsoft Enterprise and Developer Support
    segunda-feira, 31 de janeiro de 2011 12:19
  • Ola Fábio,

    Obrigado pelo seu feedback. Na verdade o que acabou de falar, foi exatamente que eu passei o fim de semana, lendo, estudando. Baixei do site da Mcirosoft sobre tuning do S.O, SQL Server, monitoração e Best Practices.

    Pelo jeito, vou perder os meus ultimos fios de cabelos rsrsrsrsrs.

    Obrigado a todos.

    Anderson


    Anderson Muniz
    segunda-feira, 31 de janeiro de 2011 12:57
  • Experts,

    Algumas informações adcionais, a empresa que trabalho é uma consultoria financeira, e temos a matriz como centro de operações onde teremos 10 usuarios acessando uma aplicação proprietaria e um sistema TOTVS RM + nossa filial onde atenderá o publico para cadastro e pesquisa tendo um total de 15 pessoas.

    Em média teremos 14 pessoas acessando o servidor (SQL-Server) ao mesmo tempo.

    Nesse servidor temos

    - 3 Instancias
    - Antivirus Gerenciamento
    - Servidor de Arquivos

    É um servidor x64 Bits, rodando Windows 2008 R2 Enterprise 64 Bits. Por enquanto tem somente um HD Sata 7.200 RPM de 750GB. Vamos colocar mais exatamente igual para fazer Raid-1.

    Estou monitorando o servidor usando Best Practices Microsoft.

    Irei fazer um upgrade essa semana para 16GB de memoria máxima + 1 HD Sata para espelho. Mas ainda tenho uma preocupação em relação principalmente a aplicação proprietaria.

    Valeu,
    Anderson


    Anderson Muniz
    segunda-feira, 31 de janeiro de 2011 13:47
  • Olá Anderson,

    Recomendo que você siga as instruções do Storage Top 10 Best Practices - http://technet.microsoft.com/en-us/library/cc966534.aspx para não ter problemas com gargalos de Disco. O SQL server é um aplicativo com alto consumo de IO e portanto você deve tomar muito cuidado com a alocação dos arquivos de banco de dados para que eles não concorram entrs si e com outros aplicativos do SO.

     

    Se quiser podemos discutir através do msn ... me passa seus dados.

     

    Abraços,


    Fábio Oliveira Support Engieer | Microsoft Enterprise and Developer Support
    segunda-feira, 31 de janeiro de 2011 13:57
  • Olá Anderson,

    Recomendo que você siga as instruções do Storage Top 10 Best Practices - http://technet.microsoft.com/en-us/library/cc966534.aspx para não ter problemas com gargalos de Disco. O SQL server é um aplicativo com alto consumo de IO e portanto você deve tomar muito cuidado com a alocação dos arquivos de banco de dados para que eles não concorram entrs si e com outros aplicativos do SO.

     

    Se quiser podemos discutir através do msn ... me passa seus dados.

     

    Abraços,


    Fábio Oliveira Support Engieer | Microsoft Enterprise and Developer Support

    Ola fabio, pow gostaria, meu msn andybr bol com br

    Valeu pelos feedbacks. Me ajudaram bastante.


    Anderson Muniz
    segunda-feira, 7 de fevereiro de 2011 15:46
  • Este post foi encerrado por ser considerado um post antigo.

    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 5 de junho de 2018 17:54
    Moderador