CORREÇÃO: Erro de falta de memória quando o espaço de endereço virtual do processo do SQL Server é muito pouco memória disponível

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: 3074434
Aviso
Depois de aplicar essa atualização, você precisa adicionar o rastreamento sinalizador - T8075 como um parâmetro de inicialização para permitir que essa alteração.
Sintomas
Quando você executa uma consulta em uma versão de 64 bits de 2014 do Microsoft SQL Server ou Microsoft SQL Server 2012, você recebe uma mensagem de erro de falta de memória semelhante à seguinte no log de erros do SQL Server:

Falha ao alocar páginas: FAIL_PAGE_ALLOCATION 513

Consultas levar muito tempo para concluir a execução e encontrar esperas SOS_MEMORY_TOPLEVELBLOCKALLOCATOR.

Quando você examina os seguintes pontos de informações, você encontrará que há espaço de endereço virtual de disponível muito baixa:

  • DBCC MEMORYSTATUS - seção conta de processo/sistema - a memória Virtual disponível
  • DMV: sys.dm_os_process_memory - virtual_address_space_available_kb de coluna
Esses valores começarem aproximadamente 8 terabytes (TB) em um x64 processar e continuar a subir para baixo e atingir alguns gigabytes (GB).

Quando você está no estágio em que o espaço de endereço virtual disponível é muito baixo, consultas que tente executar alocação também pode encontrar um tipo de espera de CMEMTHREAD de memória.

Os seguintes pontos de dados continuarão crescendo ao longo do tempo:
  • DMV: sys.dm_os_process_memory e sys.dm_os_memory_nodes - virtual_address_space_reserved_kb de coluna
  • DBCC MEMORYSTATUS - Gerenciador de memória seção - VM reservado

Esses valores geralmente aumentará em múltiplos do valor "memória máxima do servidor" até quase 8 TB.
Causa
Quando o processo do SQL Server atingiu o estado onde Total memória do servidor = memória do servidor de destino = memória máxima do servidor, existem diretivas no Gerenciador de memória do SQL Server para permitir que as novas alocações solicitar várias páginas de 8 KB seja bem-sucedida temporariamente. Padrão de alocação repetidas em tal condição pode fazer com que a fragmentação dos blocos de memória e consumo de espaço de endereço virtual. Se esse processo se repete várias vezes, se esgotará o espaço de endereço virtual do SQL Server e você irá notar os sintomas que foram mencionados anteriormente.
Resolução

Informações sobre o hotfix

Para resolver esse problema, instale o hotfix por CORREÇÃO: Erro ao seu procedimento armazenado chama um outro procedimento armazenado em um servidor vinculado no SQL Server 2014.

Pré-requisitos:

Você deve ter Atualização cumulativa 3 para o SQL Server 2014 Service Pack 1 instalado para aplicar esse hotfix.

Aviso prévio

Depois de aplicar essa atualização, você precisa adicionar o rastreamento sinalizador - T8075 como um parâmetro de inicialização para permitir que essa alteração.

Informações da atualização cumulativa

O problema foi corrigido primeiro na atualização cumulativa seguinte do SQL Server.

Recomendação: Instale a atualização cumulativa mais recente para o SQL Server
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Recomendamos que você faça o download e instala as mais recentes atualizações cumulativas para o SQL Server:


Esse hotfix impede que o limite de memória e a redução contínua do espaço de endereço virtual disponível que pode ocorrer.
Situação
A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".
Mais Informações
  • Windows 2012 R2 permite que o espaço de endereço virtual aumentar tanto quanto a 128 TB. Portanto, você pode não perceber esse problema em ambientes Windows 2012 R2. Para obter mais informações, consulte o seguinte tópico no Centro de desenvolvimento do Windows:

    Limites de memória para versões do Windows e do Windows Server
  • Se você vir crescimento contínuo no espaço de endereço virtual, mesmo depois de aplicar a correção, você pode determinar quais consultas ou operações estão solicitando grandes blocos de memória usando o Page_allocated eventos estendidos. Um exemplo de script tem esta aparência:

    CREATE EVENT SESSION [memory_tracking] ON SERVERADD EVENT sqlos.page_allocated(    ACTION(package0.callstack,sqlos.cpu_id,sqlos.task_address,sqlos.worker_address,sqlserver.database_id,sqlserver.query_hash,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text)    WHERE ([number_pages]>(1)))ADD TARGET package0.event_file(SET filename=N'E:\Data\MSSQL11.MSSQLSERVER\MSSQL\Log\memory_tracking.xel')WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)GO
    Normalmente são backups de log e operações de manutenção de índice, que ocorrem com frequência.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 3074434 - Última Revisão: 10/10/2016 02:11:00 - Revisão: 9.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbsurveynew kbexpertiseadvanced kbfix kbmt KB3074434 KbMtpt
Comentários