O uso de memória do SQL Server não registra

1

EDIT Desculpe esqueceu detalhes, estou executando o SQL Server 2008 R2 16GB de RAM

Minha alocação de memória mínima / máxima está configurada para 13 GB. Executando perfmon - SQL Server: Gerenciador de Memória. A memória do servidor de destino e a memória total do servidor confirma isso. O contador de ram no Gerenciador de Tarefas é de 15 GB (supondo que 2 GB seja usado para outros aplicativos)

O que eu não entendo é por que o processo sqlservr.exe está mostrando apenas 82KB uso no gerenciador de tarefas? Além disso, toda a memória consumida pelos processos em execução no meu servidor do Gerenciador de Tarefas também não chega a 15 GB.

Então, o que dá

    
por Nai 23.02.2010 / 21:18

2 respostas

1

115982 é uma pergunta muito semelhante

Este é um servidor de 64 bits - você tem as páginas de bloqueio na política local de memória ativada?

the most likely reason is that this SQL Server 64bit instance is using “locked pages” as I’ve described in an earlier question. Notice the name on the Task Manager column is called Memory (Private Working Set). Remember we also said that if SQL Server 64bit instances use “locked pages” this memory would not be part of the working set (because remember AWE APIs are used on 64bit to “lock” pages and that memory is not part of the working set). So since the locked pages are not part of the working set, they won’t appear in this column in Task Manager. On the Task Manager for Windows Server 2003, this column is called “Mem Usage” but it also reflects the working set of the process.

Aqui está um artigo que explica em profundidade

Você também pode ver os contadores em SQL

SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value * 8192.0 ) / 1048576, 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    object_Name LIKE '%Buffer Manager%'
    AND RTRIM(counter_name) IN ( 'Free pages', 'Total pages',
                                 'Database pages' ) 
UNION SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value / 1024 ), 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    counter_name IN ( 'Target Server Memory (KB)',
                      'Total Server Memory (KB)' )
    
por 23.02.2010 / 23:02
1

Qual versão do SQL Server você está usando? É x64 ou x86?

Eu estou supondo que é uma máquina x86 usando o AWE. Quando o AWE está em uso, o Gerenciador de Tarefas não relata a quantidade correta de memória em uso. Isso é normal, use o contador de perfmon para ver quanta memória está em uso.

    
por 23.02.2010 / 21:22