Você está offline; aguardando reconexão

Como usar o comando DBCC MEMORYSTATUS para monitorar o uso de memória no SQL Server 2005

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 907877
Sumário
Este artigo descreve a saída do comando DBCC MEMORYSTATUS. Esse comando freqüentemente é usado para solucionar problemas de consumo de memória do Microsoft SQL Server.

Este artigo descreve os elementos da saída para o Gerenciador de memória, para o resumo do uso da memória, para obter as informações agregadas de memória, para obter as informações de distribuição buffer, as informações do pool de buffer e as informações de cache de procedimento. Ele também descreve a saída sobre objetos de memória global, sobre os objetos de memória de consulta, sobre otimização e sobre os agentes de memória.
INTRODUÇÃO
O comando DBCC MEMORYSTATUS apresenta um instantâneo do status de memória atual do Microsoft SQL Server. Você pode usar a saída desse comando para solucionar problemas de consumo de memória no SQL Server ou para solucionar problemas de erros de falta de memória específicos. (Muitos erros de falta de memória automaticamente imprimir essa saída no log de erros.) Os serviços de suporte técnico da Microsoft também podem solicitar a executar este comando durante um incidente de suporte específico, se houver um erro que pode ser associado uma condição de memória insuficiente.

Observação: Monitor de desempenho (PerfMon) e o Gerenciador de tarefas não são considerados para memória corretamente se o suporte de extensões de janela de endereço (AWE) está habilitado.

Este artigo descreve alguns dos dados que pode ser obtida a partir da saída do comando DBCC MEMORYSTATUS. Várias seções deste artigo incluem detalhes de implementação proprietário que não são explicados a seguir. Suporte técnico da Microsoft não responderão às dúvidas ou fornecem mais informações sobre o significado de contadores específicos, além das informações fornecidas neste artigo.
Mais Informações
Importante: O comando DBCC MEMORYSTATUS destina-se a ser uma ferramenta de diagnóstico de suporte técnico da Microsoft. O formato da saída e o nível de detalhe fornecido estão sujeitos a alterações entre versões do produto e os service packs. A funcionalidade que fornece o comando DBCC MEMORYSTATUS pode ser substituída por um mecanismo diferente em versões posteriores do produto. Portanto, em versões posteriores do produto, esse comando pode não funcionar mais. Nenhum aviso adicional será feito antes que este comando é alterado ou removido. Portanto, os aplicativos que usam este comando podem quebrar sem aviso.

A saída do comando DBCC MEMORYSTATUS foi alterado de versões anteriores do SQL Server. O resultado contém agora várias seções que não estavam disponíveis em versões anteriores do produto.

Gerenciador de memória

A primeira seção da saída é o Gerenciador de memória. Esta seção mostra o consumo total de memória pelo SQL Server.
   Memory Manager                 KB    ------------------------------ --------------------   VM Reserved                    1761400   VM Committed                   1663556   AWE Allocated                  0   Reserved Memory                1024   Reserved Memory In Use         0   (5 row(s) affected)
Os elementos nesta seção são as seguintes:
  • VM reservada: este valor mostra a quantidade total de espaço de endereço virtual (VAS) que reservou o SQL Server.
  • Compromisso de VM: este valor mostra a quantidade geral de VAS SQL Server foi confirmada. VAS está comprometida foi associada a memória física.
  • AWE alocados: este valor mostra a quantidade total de memória é alocada pelo mecanismo de AWE na versão de 32 bits do SQL Server. Ou, esse valor mostra a quantidade total de memória que páginas bloqueadas consumir na versão de 64 bits do produto.
  • Memória reservada: este valor mostra a memória reservada para a conexão de administrador dedicada (DAC).
  • Memória reservada em uso: este valor mostra a memória reservada que está sendo usada.

Resumo do uso da memória

A seção do Gerenciador de memória é seguida de um resumo do uso de memória para cada nó de memória. Em um sistema de acesso (NUMA) habilitado de memória não uniforme, haverá uma entrada de nó de memória correspondente para cada nó de hardware. Em um sistema SMP, haverá uma única entrada de nó de memória.

Observação: A ID do nó de memória pode não corresponder à ID do nó de hardware.
   Memory node Id = 0             KB    ------------------------------ --------------------   VM Reserved                    1757304   VM Committed                   1659612   AWE Allocated                  0   MultiPage Allocator            10760   SinglePage Allocator           73832   (5 row(s) affected)
Observação: Esses valores mostram a memória alocada por threads em execução neste nó NUMA. Esses valores não são a memória que é local para o nó NUMA.

Os elementos nesta seção são as seguintes:
  • VM reservada: este valor mostra o VAS é reservado por threads em execução neste nó.
  • Compromisso de VM: este valor mostra o VAS confirmada por threads em execução neste nó.
  • AWE alocados: este valor mostra a memória é alocada pelo mecanismo de AWE na versão de 32 bits do produto. Ou este valor mostra a quantidade total de memória consumida por páginas bloqueadas na versão de 64 bits do produto.

    Em um sistema NUMA habilitado, esse valor pode ser negativo ou incorretas. No entanto, o valor geral AWE alocados na seção Gerenciador de memória é um valor correto. Para controlar a memória alocada por nós NUMA individuais, use do SQL Server: nó do Buffer objetos de desempenho. (Para obter mais informações, consulte SQL Server Books Online.)
  • Alocador multiPage: este valor mostra a memória é alocada por meio do alocador multipage por threads em execução neste nó. Essa memória vem de fora do pool de buffer.
  • Alocador SinglePage: este valor mostra a memória é alocada pelo alocador de página única por threads em execução neste nó. Essa memória é roubada do pool de buffers.
Observação: As somas dos valores VM reservados e os valores em todos os nós de memória Confirmada de VM poderá ser um pouco menor do que os valores correspondentes são relatados na seção Gerenciador de memória.

Memória agregada

A próxima seção contém informações de memória agregada para cada tipo de funcionário em cada nó NUMA. Para um sistema NUMA habilitado, você poderá ver o resultado semelhante ao seguinte.

Observação: A tabela a seguir contém somente uma parte da saída.
   MEMORYCLERK_SQLGENERAL (node 0)                                  KB    ---------------------------------------------------------------- --------------------   VM Reserved                                                      0   VM Committed                                                     0   AWE Allocated                                                    0   SM Reserved                                                      0   SM Commited                                                      0   SinglePage Allocator                                             592   MultiPage Allocator                                              2160   (7 row(s) affected)   MEMORYCLERK_SQLGENERAL (node 1)                                  KB    ---------------------------------------------------------------- --------------------   VM Reserved                                                      0   VM Committed                                                     0   AWE Allocated                                                    0   SM Reserved                                                      0   SM Commited                                                      0   SinglePage Allocator                                             136   MultiPage Allocator                                              0   (7 row(s) affected)   MEMORYCLERK_SQLGENERAL (Total)                                   KB    ---------------------------------------------------------------- --------------------   VM Reserved                                                      0   VM Committed                                                     0   AWE Allocated                                                    0   SM Reserved                                                      0   SM Commited                                                      0   SinglePage Allocator                                             728   MultiPage Allocator                                              2160   (7 row(s) affected)
Observação: Essas identificações de nó correspondem à NUMA nó Configuração do computador que está executando o SQL Server. O nó IDs incluem nós de software possível definidas sobre nós de hardware, ou na parte superior de um sistema SMP. Para localizar o mapeamento entre IDs de nó e CPUs para cada nó, exiba informações sobre o número de identificação de evento 17152. Esse evento é registrado no log do aplicativo em Visualizar eventos quando você iniciar o SQL Server.

Para um sistema SMP, você verá apenas uma seção para cada tipo de funcionário. Esta seção é semelhante ao seguinte.
   MEMORYCLERK_SQLGENERAL (Total)                                   KB    ---------------------------------------------------------------- --------------------   VM Reserved                                                      0   VM Committed                                                     0   AWE Allocated                                                    0   SM Reserved                                                      0   SM Commited                                                      0   SinglePage Allocator                                             768   MultiPage Allocator                                              2160   (7 row(s) affected)
Outras informações nessas seções são sobre memória compartilhada:
  • SM reservada: este valor mostra o VAS é reservado por todos os assistentes desse tipo que estão usando os arquivos de memória mapeada API. Essa API também é conhecido como memória compartilhada.
  • SM compromisso: este valor mostra o VAS confirmada por todos os assistentes desse tipo que estão usando arquivos de memória mapeada API.
Você pode obter informações de resumo para cada tipo de funcionário para todos os nós de memória usando a exibição de gerenciamento dinâmico sys.dm_os_memory_clerks (DMV). Para fazer isso, execute a seguinte consulta:
select 	type,	sum(virtual_memory_reserved_kb) as [VM Reserved],	sum(virtual_memory_committed_kb) as [VM Committed],	sum(awe_allocated_kb) as [AWE Allocated],	sum(shared_memory_reserved_kb) as [SM Reserved], 	sum(shared_memory_committed_kb) as [SM Committed],	sum(multi_pages_kb) as [MultiPage Allocator],	sum(single_pages_kb) as [SinlgePage Allocator]from 	sys.dm_os_memory_clerks group by type

Distribuição de buffer

A próxima seção mostra a distribuição de 8 kilobytes (KB) buffers no pool de buffer.
   Buffer Distribution            Buffers   ------------------------------ -----------   Stolen                         553   Free                           103   Cached                         161   Database (clean)               1353   Database (dirty)               38   I/O                            0   Latched                        0   (7 row(s) affected)
Os elementos nesta seção são as seguintes:
  • Roubada: memória roubada descreve buffers de 8 KB que o servidor usa para diversos fins. Esses buffers servem como as alocações de armazenamento de memória genérico. Diferentes componentes do servidor usam esses buffers para armazenar estruturas de dados internas. O processo de lazywriter não é permitido para liberar os buffers roubada fora do pool de buffer.
  • Livre: este valor mostra os buffers de compromisso que não estão sendo usados no momento. Esses buffers estão disponíveis para armazenar dados. Ou, outros componentes podem solicitar esses buffers e, em seguida, marcar esses buffers como roubada.
  • Cache: este valor mostra os buffers são utilizados para vários caches.
  • Banco de dados (limpo): este valor mostra os buffers que possuem conteúdo de banco de dados e que não foram modificados.
  • Banco de dados (sujo): este valor mostra os buffers que possuem conteúdo de banco de dados e que foram modificados. Esses buffers contém alterações que precisam ser liberadas para o disco.
  • E/s: este valor mostra os buffers que estão aguardando para uma operação de e/s pendente.
  • Latched: este valor mostra os buffers travadas . Um buffer é travado quando um thread é ler ou modificar o conteúdo de uma página. Um buffer é também travado quando a página está sendo lidos do disco ou gravados em disco. Uma trava é usada para manter a consistência física dos dados na página enquanto ele está sendo lidas ou modificadas. Um bloqueio é usado para manter a consistência transacional e lógica.

Detalhes do pool de buffer

Você pode obter informações detalhadas sobre buffers do pool de buffer para páginas de banco de dados usando o sys.dm_os_buffer_descriptors DMV. E você pode obter informações detalhadas sobre páginas de pool de buffer que estão sendo usadas para fins diversos do servidor usando o sys.dm_os_memory_clerks DMV.

A próxima seção lista detalhes sobre o pool de buffers, além de informações adicionais.
   Buffer Counts                  Buffers   ------------------------------ --------------------   Committed                      1064   Target                         17551   Hashed                         345   Stolen Potential               121857   External Reservation           645   Min Free                       64   Visible                        17551   Available Paging File          451997   (8 row(s) affected)
Os elementos nesta seção são as seguintes:
  • Confirmado: este valor mostra o total de buffers é confirmadas. Buffers são confirmadas tem memória física associada a eles. O valor confirmado é o tamanho atual do pool de buffer. Esse valor inclui a memória física é alocada se o suporte AWE é ativado.
  • Destino: este valor mostra o tamanho do pool de buffer de destino. Se o valor de destino for maior que o valor confirmado , o pool de buffer está crescendo. Se o valor de destino for menor que o valor confirmado , o pool de buffer está diminuindo.
  • Hashed: este valor mostra as páginas de dados e páginas de índice são armazenadas no pool de buffer.
  • Potencial de roubo: este valor mostra o máximo de páginas que pode ser roubado do pool de buffers.
  • ExternalReservation: este valor mostra as páginas que foram reservadas para consultas que irá executar uma operação de hash ou uma operação de classificação. Essas páginas ainda não foi roubadas.
  • Min livre: este valor mostra as páginas que o pool de buffer tenta tem na lista de disponibilidade.
  • Visível: este valor mostra os buffers são visíveis ao mesmo tempo. Esses buffers podem ser acessados diretamente ao mesmo tempo. Este valor é geralmente igual ao total de buffers. No entanto, quando o suporte AWE é habilitado, este valor pode ser menor do que o total de buffers.
  • Arquivo de paginação disponível: este valor mostra a memória que está disponível para ser confirmada. Esse valor é expresso como o número de buffers de 8 KB. Para obter mais informações, consulte o tópico "GlobalMemoryStatusEx função" na documentação da API do Windows.

Cache de procedimento

A próxima seção descreve a composição do cache de procedimento.
   Procedure Cache                Value   ------------------------------ -----------   TotalProcs                     4   TotalPages                     25   InUsePages                     0   (3 row(s) affected)
Os elementos nesta seção são as seguintes:
  • TotalProcs: este valor mostra o total de objetos em cache que estão atualmente no cache de procedimento. Esse valor corresponderá as entradas em sys.dm_exec_cached_plans DMV.

    Observação: Devido à natureza dinâmica das informações, a correspondência pode não ser exata. Você pode usar o PerfMon para monitorar a do SQL Server: planejar Cache objeto e o sys.dm_exec_cached_plans DMV para obter informações detalhadas sobre o tipo de objetos em cache, como disparadores, procedimentos e objetos ad-hoc.
  • TotalPages: este valor mostra as páginas cumulativas que você deve ter que armazenar todos os objetos em cache no cache de procedimento.
  • InUsePages: este valor mostra as páginas no cache de procedimento que pertencem a procedimentos que estão sendo executados. Essas páginas não podem ser descartadas.

Objetos de memória global

A próxima seção contém informações sobre vários objetos de memória global. Esta seção também contém informações sobre quanto os objetos de memória memória global em uso.
   Global Memory Objects          Buffers   ------------------------------ --------------------   Resource                       126   Locks                          85   XDES                           10   SETLS                          2   SE Dataset Allocators          4   SubpDesc Allocators            2   SE SchemaManager               44   SQLCache                       41   Replication                    2   ServerGlobal                   25   XP Global                      2   SortTables                     2   (12 row(s) affected)
Os elementos nesta seção são as seguintes:
  • Recurso: este valor mostra a memória que usa o objeto de recurso . O objeto de recurso é usado pelo mecanismo de armazenamento e para várias estruturas de todo o servidor.
  • Bloqueia: este valor mostra a memória que usa o Gerenciador de bloqueio.
  • XDES: este valor mostra a memória que usa o Gerenciador de transações.
  • SETLS: este valor mostra a memória que é usada para alocar a estrutura de cada thread específico do mecanismo de armazenamento que usa armazenamento local de segmento.
  • Alocadores de Dataset SE: este valor mostra a memória que é usada para alocar estruturas de acesso à tabela por meio da configuração de Métodos de acesso .
  • Alocadores SubpDesc: este valor mostra a memória que é usada para gerenciar subprocessos para consultas em paralelo, as operações de backup, as operações de restauração, operações de banco de dados, as operações de arquivo, espelhamento e cursores assíncronas.Esses subprocessos são também conhecidas como processos paralelos.
  • SE SchemaManager: este valor mostra a memória usada pelo Gerenciador de esquemas para armazenar os metadados específicos do mecanismo de armazenamento.
  • SQLCache: este valor mostra a memória que é usada para armazenar o texto de instruções ad hoc e de instruções preparadas.
  • Replicação: este valor mostra a memória que o servidor usa para subsistemas de replicação internos.
  • ServerGlobal: este valor mostra o objeto de memória de servidor global é um termo genérico por vários subsistemas.
  • XP Global: este valor mostra a memória estendida uso de procedimentos armazenados.
  • Tabelas de classificação: este valor mostra a memória que classificar o uso de tabelas.

Objetos de memória de consulta

A próxima seção descreve informações de concessão de memória de consulta. Esta seção inclui um instantâneo do uso de memória da consulta. Consulta memória é também conhecida como espaço de trabalho.
   Query Memory Objects           Value   ------------------------------ -----------   Grants                         0   Waiting                        0   Available (Buffers)            14820   Maximum (Buffers)              14820   Limit                          10880   Next Request                   0   Waiting For                    0   Cost                           0   Timeout                        0   Wait Time                      0   Last Target                    11520   (11 row(s) affected)   Small Query Memory Objects     Value          ------------------------------ -----------    Grants                         0   Waiting                        0   Available (Buffers)            640   Maximum (Buffers)              640   Limit                          640   (5 row(s) affected)
Se o tamanho e o custo de uma consulta de satisfazem os limites de memória "small" consulta, a consulta é colocada em uma fila de consulta pequeno. Esse comportamento impede que consultas menores atrasadas por trás de consultas maiores que já estão na fila.

Os elementos nesta seção são as seguintes:
  • Concede: este valor mostra as consultas em execução com concessões de memória.
  • Aguardando: este valor mostra as consultas que estão aguardando para obter concessões de memória.
  • Disponível: este valor mostra os buffers que estão disponíveis para consultas para uso como espaço de trabalho de hash e como classificar o espaço de trabalho. O valor de disponível é atualizado periodicamente.
  • Máximo: este valor mostra o total de buffers que pode ser fornecidas a todas as consultas para ser usado como espaço de trabalho.
  • Limite: este valor mostra o destino de execução de consulta para a fila de consulta grande. Esse valor é diferente do valor máximo (Buffers) porque o valor máximo (Buffers) não é atualizado até que não haja alteração na fila.
  • Próxima solicitação: este valor mostra o tamanho da solicitação de memória, em buffers para a próxima consulta de espera.
  • Aguardando: este valor mostra a quantidade de memória que deve estar disponível para executar a consulta ao qual se refere o valor Próximo a solicitação . A Espera para é o Próxima solicitação valor multiplicado por um fator de sobra. Esse valor efetivamente garante que uma quantidade específica de memória estará disponível quando a próxima consulta de espera é executada.
  • Custo: este valor mostra o custo da próxima consulta de espera.
  • Tempo limite: este valor mostra o tempo limite, em segundos, para a próxima consulta de espera.
  • Tempo de espera: este valor mostra o tempo decorrido, em milissegundos, desde que a próxima consulta espera foi colocada na fila.
  • Último destino: este valor mostra o limite de memória geral para a execução da consulta. Esse valor é o limite combinado para a fila de consulta grande e a fila de consulta pequeno.

Otimização

A próxima seção apresenta um resumo dos usuários que estão tentando otimizar consultas ao mesmo tempo.
   Optimization Queue             Value   ------------------------------ --------------------   Overall Memory                 156672000   Last Notification              1   Timeout                        6   Early Termination Factor       5   (4 row(s) affected)   Small Gateway                  Value   ------------------------------ --------------------   Configured Units               8   Available Units                8   Acquires                       0   Waiters                        0   Threshold Factor               250000   Threshold                      250000   (6 row(s) affected)   Medium Gateway                 Value   ------------------------------ --------------------   Configured Units               2   Available Units                2   Acquires                       0   Waiters                        0   Threshold Factor               12   (5 row(s) affected)   Big Gateway                    Value   ------------------------------ --------------------   Configured Units               1   Available Units                1   Acquires                       0   Waiters                        0   Threshold Factor               8   (5 row(s) affected)
Consultas são enviadas para o servidor de compilação. O processo de compilação inclui análise, algebraization e otimização. Consultas são classificadas de acordo com a quantidade de memória que cada consulta consumirá durante o processo de compilação.

Observação: Esse valor não inclui a memória necessária para executar a consulta.

Quando uma consulta é iniciado, não há nenhum limite em quantas consultas podem ser compiladas. Como o consumo de memória aumenta e atinge um limite, a consulta deve passar um gateway para continuar. Há um limite progressivamente redução de consultas simultaneamente compilados após cada gateway. O tamanho de cada gateway depende da plataforma e da carga. Tamanhos de gateway são escolhidos para maximizar a taxa de transferência e a escalabilidade.

Se a consulta não pode passar um gateway, a consulta deve aguardar até que a memória está disponível. Ou, a consulta retornará um erro de tempo limite (erro 8628). Além disso, a consulta não pode adquirir um gateway, se o usuário cancela a consulta ou se um deadlock é detectado. Se uma consulta passar vários gateways, a consulta não libera os gateways menores até que o processo de compilação.

Esse comportamento permite que apenas algumas compilações de muita memória ocorrem ao mesmo tempo. Além disso, esse comportamento aumenta o throughput para consultas menores.

Agentes de memória

As próximas três seções mostram informações sobre agentes de memória que controle em cache de memória, roubada memória e memória reservada. Informações que elas fornecem somente podem ser usadas para diagnósticos internos. Portanto, essas informações não estão detalhadas aqui.
   MEMORYBROKER_FOR_CACHE           Value   -------------------------------- --------------------   Allocations                      1843   Rate                             0   Target Allocations               1843   Future Allocations               0   Last Notification                1   (4 row(s) affected)   MEMORYBROKER_FOR_STEAL           Value   -------------------------------- --------------------   Allocations                      380   Rate                             0   Target Allocations               1195   Future Allocations               0   Last Notification                1   (4 row(s) affected)   MEMORYBROKER_FOR_RESERVE         Value   -------------------------------- --------------------   Allocations                      0   Rate                             0   Target Allocations               1195   Future Allocations               0   Last Notification                1   (4 row(s) affected)
Status de memória memorystatus dbcc de memória do SQL Server 2005

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 907877 - Última Revisão: 03/15/2015 07:24:00 - Revisão: 2.0

Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems

  • kbsqlsetup kbsql2005engine kbtshoot kbinfo kbmt KB907877 KbMtpt
Comentários