none
Memory Leak sqlservr.exe RRS feed

  • Pergunta

  • Galera,

          possuo um servidor VMWare, Windows Server 2003 Enterprise x64 Edition Service pack 3, e neste servidor possuo um SQL Server 2008 R2 (10.50.1600).

            Este SQL Server possui apenas uma instância onde setei o "Maximum server memory (in MB)" para 3072, enquanto o servidor possui 4193500 K de memória física.

          O problema é que quando eu abro o gerenciador de tarefas do Windows ele me mostra, na aba "Performance", que o servidor está consumindo 3,9 GB de memória e quando eu abro a aba "Processes" vejo que o processo que consome mais memória no servidor é o "sqlservr.exe" com o consumo de 92.100K, o que me parece muito estranho. Alem disto somando-se o consumo de memória de todos os processos não chega nem a 500MB. (O Show processes from all users está marcado!)

          Um amigo meu de outra empresa me relatou o mesmo erro com a mesma versão do SQL Server porem com versão 2008 R2 do Windows. Já pesquisei e não encontrei nada sobre esse vazamento de memória. Gostaria de saber se isto é um Bug do SQL Server 2008 R2, e se tem como resolver isto.


    Igor Auler

    quinta-feira, 6 de setembro de 2012 18:58

Respostas

  • Igor,

    o max server memory é configurável para o buffer cache do SQL Server. Existem outros recursos do SQL (Linked Server, cache de procs, etc) que ficam em outra área da memória, pode ter certeza que isso está influenciando no seu uso de memoria.

    Outra coisa, não use o TaskManager para gerenciar memória, use os contadores de memória do Perfmon para monitorar, o Task Manager, nesse quesito, não é confiável.

    segunda-feira, 10 de setembro de 2012 06:41

Todas as Respostas

  • Igor,

    o max server memory é configurável para o buffer cache do SQL Server. Existem outros recursos do SQL (Linked Server, cache de procs, etc) que ficam em outra área da memória, pode ter certeza que isso está influenciando no seu uso de memoria.

    Outra coisa, não use o TaskManager para gerenciar memória, use os contadores de memória do Perfmon para monitorar, o Task Manager, nesse quesito, não é confiável.

    segunda-feira, 10 de setembro de 2012 06:41
  • Igor,

    Concordo plenamente com o Leonardo, além disso, o SQL Server tem sim a sua área de Buffer específica para trabalhar com os processos que estão em uso, e isso dentro dentro da faixa de memória configurada, mas isso não impede que ele instancie mais memória para as outras funcionalidades e recursos, é um bom sinal saber que o SQL Server esta consumindo memória e temos recurso suficiente para isso.

    Também gosto de utilizar a ferramenta Performance como indicador de monitoramento ao invês da Task Manager, como também, algumas System Stored Procedures.


    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, 10 de setembro de 2012 12:35
    Moderador