none
16Gb de RAM e SQL usando 250 Mb dela porém 17GB de PF RRS feed

  • Pergunta

  • Pessoal, boa tarde

    Possuo um servidor com windows 2003 server standard edition 64 bits e sql 2005 64 bits também.
    Ele foi instalado ontem e hoje fiquei surpreso quando verifiquei o uso de memória.
    De memória RAM pelo taskmanager ou processexplorer acusa somente 250 Mb + -.
    De memória virtual 17 GB.

    Porque meu SQL está jogando tudo para memória virtual se existe mais de 15 GB livre para uso em RAM ?

    Outra situação estranha é que em memoria  física ( pelo taskmanager ) aparece total de 16GB e livre uns 200MB porém vendo pelos processos, o maior processo que tem utilização de memória é o sql com uns 250.. todos os demais são poucos Mbs.. Somando tudo não usaria uns 500 Mb mas ele insiste em acusar que livre só existe 200 Mb no servidor.

    OBS : Está marcado a opção de exibir todos os processos de todos os usuários.

    Seria algum bug do windows que alocou esta memória e não quer liberar ? Algo do SQL ? ALguma sugestão ?

    Obrigado

    domingo, 29 de julho de 2012 20:21

Respostas

  • Ola Rafael,

    Você tem Lock Pages in Memory ou AWE habilitado? Porque uma vez esses dois recursos habilitados o task manager não mostra mais o valor real da memoria endereçada para o processo e sim somente através do performance monitor.

    Se a resposta foi útil, classifique-a.


    Att, Marcos Freccia [MCTS|MCITP|MCT SQL Server 2008]

    • Sugerido como Resposta Marcos FrecciaMVP quarta-feira, 17 de outubro de 2012 11:33
    • Marcado como Resposta Rafael Metring terça-feira, 21 de maio de 2013 13:47
    segunda-feira, 30 de julho de 2012 17:14
  • Rafael,

    Nao tem como trocar é by the book do Windows, temos que conviver com isso. :(

    O Lock pages in memory, server para que o processo que essa opção esteja configurado nao utilize memoria virtual para trabalhar os dados, mas sim apenas memoria física, isso evita de acontecer paginação.


    Att, Marcos Freccia [MCTS|MCITP|MCT SQL Server 2008]

    • Marcado como Resposta Rafael Metring terça-feira, 21 de maio de 2013 13:48
    segunda-feira, 30 de julho de 2012 21:43
  • Rafael,

    se seu sistema for 64 bits ignore o AWE, mas verifica o Lock Pages. O que deve estar acontecendo é que seu servidor está configurado com o max server memory algo em torno de 13 a 15 GB +/-, e como essa área é apenas o Buffer Cache, o restante pode estar sendo consumido pelo cache de procedures, linked servers, etc. São duas áreas diferentes fraga?

    Outro detalhe, o fato da memória virtual ter 16 GB não diz nada por si só, na instalação default do windows, o tamanho do arquivo pagefile.sys é igual ao tamanho da memória disponível na página.

    Use o contador do perfmon Buffer Manager: Page Life Expectancy e veja qual o valor que tá lá, quando maior ele tiver (acima de 300) mais tempo seus dados estão em memória.

    Só uma dúvida, de onde você tirou que o SQL está paginando os dados? Você usou algum contador que mostra isso?

    • Marcado como Resposta Rafael Metring terça-feira, 21 de maio de 2013 13:48
    terça-feira, 4 de setembro de 2012 13:23

Todas as Respostas

  • Rafael,

    Qual service pack esta aplicado para este Windows Server 2003 e também para o SQL Server 2005?

    Como esta configurado o uso de memória do seu SQL Server?


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

    segunda-feira, 30 de julho de 2012 13:50
    Moderador
  • Junior.. está com service pack 2 no windows.
    NO SQL não consta nada sobre service pack.. Eu não instalei nada adicional. Consta apenas como 9.00.1399.00

    Creio que seja o SP 1.

    O Sql foi instalado com suas configurações padrões. Não mexi em absolutamente nada porém, no proprio sql está desativado awe e nas opções de memória esta com um limite gigante de alguns milhares de MB.

    Obrigado

    segunda-feira, 30 de julho de 2012 17:08
  • Ola Rafael,

    Você tem Lock Pages in Memory ou AWE habilitado? Porque uma vez esses dois recursos habilitados o task manager não mostra mais o valor real da memoria endereçada para o processo e sim somente através do performance monitor.

    Se a resposta foi útil, classifique-a.


    Att, Marcos Freccia [MCTS|MCITP|MCT SQL Server 2008]

    • Sugerido como Resposta Marcos FrecciaMVP quarta-feira, 17 de outubro de 2012 11:33
    • Marcado como Resposta Rafael Metring terça-feira, 21 de maio de 2013 13:47
    segunda-feira, 30 de julho de 2012 17:14
  • Ola Marcos,

    AWE não está habilitado, quanto a lock pages eu confesso que não sei onde verifico.

    Com relação a lockpages, pelo que procurei na internet, até o SP4 ele não possui este recurso ::

    >SQL Server 2005 Standard Edition 64-bit did NOT support ‘Lock pages in memory’ until SP3 Cumulative Update 4.

    AWE em sistemas 64 bits pelo que li, não é necessário e lock pages eu confesso que não sei direito como funciona. Irei procurar mais a respeito.
    Eu deveria ter isso ativado em meu sistema ?

    Pelo performance, qual contador me mostra a informação correta ?
    Eu adicionei o TOTAL SERVER MEMORY do sql:Memory manager e apresentou 14 Gb.

    Seria esta a real quantidade de memória utilizada ?

    segunda-feira, 30 de julho de 2012 20:40
  • Bem citado Rafael,

    Não li corretamente todo o enunciado do problema.

    Para avaliar se o Lock pages está habilitado vá em: Menu iniciar e digite "sec pol"

    Local Security Policies -> User Rights Assignment 

    Opção: Lock Pages in memory.

    Se a conta de serviço do SQL Server Database Engine estiver configurado nessa opção o Lock Pages está habilitado.

    Para monitorar a memoria do processo do SQL Server utilize esses dois contadores.

    SQLServer: Memory Manager: Total Server Memory(KB)

    Shows the amount of memory that SQL Server is currently using.  This value should grow until 
    its equal to Target Server Memory, as it populates its caches and loads pages into memory.  
    When it has finished, SQL Server is said to be in a “steady-state”.  Until it is in steady-state, performance may be slow and IO may be higher.

    SQLServer: Memory Manager: Target Server Memory(KB)

    Shows the amount of memory that SQL Server wants to use based on the configured Max Server Memory.

    Se a resposta foi útil, classifique-a


    Att, Marcos Freccia [MCTS|MCITP|MCT SQL Server 2008]

    segunda-feira, 30 de julho de 2012 21:03
  • Marcos,

    Apenas para ficar registrado no post, sec pol no windows 2003 server não funciona. Não sei se digitou algo errado, mas de qualquer forma acessei direto pelo menu do windows.
    Em lock pages está em branco. Não tem nada ali.

    Para que exatamente serve isso ?

    Com relação ao indicar, ali acusa os 16 Gb de utilização mesmo. Por isso que está gerando + 16 Db de arquivo de paginação.

    Uma dúvida, tem como eu trocar para ele exibir a quantidade de memória direto pelo taskmanager ?
    É mais prático para o dia a dia...

    segunda-feira, 30 de julho de 2012 21:41
  • Rafael,

    Nao tem como trocar é by the book do Windows, temos que conviver com isso. :(

    O Lock pages in memory, server para que o processo que essa opção esteja configurado nao utilize memoria virtual para trabalhar os dados, mas sim apenas memoria física, isso evita de acontecer paginação.


    Att, Marcos Freccia [MCTS|MCITP|MCT SQL Server 2008]

    • Marcado como Resposta Rafael Metring terça-feira, 21 de maio de 2013 13:48
    segunda-feira, 30 de julho de 2012 21:43
  • HUm.. faz todo sentido.. Lock pages.. bloquear páginas.. como não pensei nisso antes rsrs..

    No caso como o meu não está ativado, ele pode utilizar arquivo de paginação certo ?

    Se eu desativar o arquivo de paginação, não vou ter mais problema ? AFinal, se ele está criando arquivo de paginação é porque só na RAm ele não consegue alocar tudo que precisa.. penso eu que se desativar eu teria algum problema nao ??

    E aí entra outra coisa curiosa : No TaskManager aparece uns 16GB de arquivo de paginação utilizado ( PF ) mas acessando MEU COMPUTADOR > Advanced options > performance > advanced > virtual memory > CHANGE > somente no drive C está ativado arquivo de paginação e com limite de 2000 MB.
    Os outros drivers estão com PF desativados.

    Em CURREENTLY ALLOCATED exibe certinho 2000 Mb como tamanho máximo ( recomendável 24 Gb )

    Como podem ver existe uma diferença entre o que o windows diz usar e o máximo permitido.

    Estou confundi alguma coisa ? O PF que o windows fala não é o mesmo que eu configuro em performance option ?

    OBS : Este PF que estou vendo é exibido na aba PEFORMANCE do TASK MANAGER em um gráfico do lado esquerdo verde, indicado como PFUSAGE.

    Uma imagem para simplificar : http://ScrnSht.com/hyfvpf

    Obrigado !




    segunda-feira, 30 de julho de 2012 21:56
  • Rafael,

    Desabilitando o arquivo de paginação voce pode estar mascarando um problema de gargalo de memoria no servidor, eu nao aconselharia.


    Att, Marcos Freccia [MCTS|MCITP|MCT SQL Server 2008]

    segunda-feira, 6 de agosto de 2012 16:19
  • Marcos, concorde com você.


    Agora com relação a ele usar 16Gb de memoria sendo que está liberado só 2 , você sabe me informar algo ?
    No ultimo post coloquei até uma imagem para simplificar.

    segunda-feira, 6 de agosto de 2012 20:18
  • Rafael, conseguiu algum progresso?

    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    sexta-feira, 10 de agosto de 2012 02:19
  • Rafael,

    se seu sistema for 64 bits ignore o AWE, mas verifica o Lock Pages. O que deve estar acontecendo é que seu servidor está configurado com o max server memory algo em torno de 13 a 15 GB +/-, e como essa área é apenas o Buffer Cache, o restante pode estar sendo consumido pelo cache de procedures, linked servers, etc. São duas áreas diferentes fraga?

    Outro detalhe, o fato da memória virtual ter 16 GB não diz nada por si só, na instalação default do windows, o tamanho do arquivo pagefile.sys é igual ao tamanho da memória disponível na página.

    Use o contador do perfmon Buffer Manager: Page Life Expectancy e veja qual o valor que tá lá, quando maior ele tiver (acima de 300) mais tempo seus dados estão em memória.

    Só uma dúvida, de onde você tirou que o SQL está paginando os dados? Você usou algum contador que mostra isso?

    • Marcado como Resposta Rafael Metring terça-feira, 21 de maio de 2013 13:48
    terça-feira, 4 de setembro de 2012 13:23
  • Rafael,

    Por favor, colabore com o fórum e retorne pra gente poder encerrar a thread.

    Abs!


    Luiz Mercante
    MCITP SQL 2008 | MCTS SQL 2008 | MCTS Windows Apps | MCTS Windows Network | MCP 2003
    sqldicas@outlook.com
    http://sqldicas.com.br


    Se a resposta foi útil de alguma forma, classifique.

    terça-feira, 21 de maio de 2013 03:20
    Moderador
  • Luiz,

    Não sei porque, mas eu uso o chrome e no chrome o forum não abre.. fica dizendo que está indisponivel na hora de logar e como os outros navegadores só tenho em outro máquina, as vezes esqueco de responder as mensagens e fica no esquecimento. Como todas foram úteis, estou marcando todas como resposta.

    terça-feira, 21 de maio de 2013 13:47