CORRECÇÃO: Erro de memória esgotada quando o espaço de endereçamento virtual do processo do SQL Server está muito pouco memória disponível

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 3074434
Importante
Depois de aplicar esta actualização, tem de adicionar o rastreio sinalizar - T8075 como um parâmetro de arranque para permitir que esta alteração.
Sintomas
Quando executar uma consulta numa versão de 64 bits do Microsoft SQL Server 2014 ou 2012 do Microsoft SQL Server, recebe uma mensagem de erro de memória esgotada semelhante à seguinte no registo de erros do SQL Server:

Não foi possível atribuir páginas: FAIL_PAGE_ALLOCATION 513

Consultas demoram muito tempo para concluir a execução e encontrar SOS_MEMORY_TOPLEVELBLOCKALLOCATOR aguarda.

Quando examina os seguintes pontos de informação, irá encontrar o que existe espaço de endereços muito baixo de virtuais disponíveis:

  • Memória Virtual disponível DBCC MEMORYSTATUS - secção conta de processo ou de sistema-
  • Das DMV: sys.dm_os_process_memory - virtual_address_space_available_kb de coluna
Estes valores, comece cerca de 8 terabytes (TB) sobre um x64 processar e continuar a transpor para baixo e aceder a alguns gigabytes (GB).

Quando estiver na fase em que o espaço de endereço virtual disponível é muito baixo, consultas que tentam efectuar atribuição também pode encontrar um tipo de espera de CMEMTHREAD de memória.

Os seguintes pontos de dados continuar a aumentar ao longo do tempo:
  • Das DMV: sys.dm_os_process_memory e sys.dm_os_memory_nodes - virtual_address_space_reserved_kb de coluna
  • DBCC MEMORYSTATUS - secção do Gestor de memória - VM reservado

Estes valores normalmente aumenta em múltiplos do valor de "memória do servidor máx" até quase 8 TB.
Causa
Quando o processo do SQL Server tiver atingido o estado em que o Total Memória do servidor = memória do servidor de destino = a memória do servidor max, não existem políticas no Gestor de memória do SQL Server para permitir que novas afectações solicitar várias páginas de 8 KB tenha êxito temporariamente. Padrão de atribuição repetida em tais condições poderá provocar a fragmentação dos blocos de memória e o consumo de espaço de endereçamento virtual. Se este processo repete-se muitas vezes, ficará esgotado o espaço de endereçamento virtual do SQL Server e notará os sintomas que foram anteriormente mencionados.
Resolução

Informações sobre correção

Para resolver este problema, instale a correcção a partir CORRECÇÃO: Erro ao chama o procedimento armazenado outro procedimento armazenado num servidor ligado em SQL Server 2014.

Pré-requisitos

Tem de ter Actualização cumulativa 3 para o SQL Server 2014 Service Pack 1 instalado para aplicar esta correcção.

Aviso

Depois de aplicar esta actualização, tem de adicionar o rastreio sinalizar - T8075 como um parâmetro de arranque para permitir que esta alteração.

Informações de actualização cumulativa

O problema foi corrigido pela primeira vez na actualização cumulativa do SQL Server.

Recomendação: Instale a actualização cumulativa mais recente para o SQL Server
Cada nova actualização cumulativa para o SQL Server contém todas as correcções e todas as correcções de segurança que foram incluídas na anterior actualização cumulativa. Recomendamos que transfira e instale as ultimas actualizações cumulativas para o SQL Server:


Esta correcção evita que o limite de memória e a redução contínua do espaço de endereço virtual disponível, que poderá detectar.
Ponto Da Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".
Mais Informação
  • R2 de 2012 do Windows permite que o espaço de endereçamento virtual aumentar tão grande como 128 TB. Por conseguinte, não poderá notar este problema em ambientes Windows 2012 R2. Para mais informações, consulte o tópico seguinte no Centro de programadores do Windows:

    Limites de memória para edições do Windows e Windows Server
  • Se vir contínuo aumento no espaço de endereçamento virtual, mesmo depois de aplicar a correcção, pode determinar quais consultas ou operações que estão a pedir grandes blocos de memória utilizando o Page_allocated evento expandido. Um script de exemplo tem o seguinte aspecto:

    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, estes são cópias de segurança do registo e operações de manutenção do índice, que ocorrem frequentemente.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 3074434 - Última Revisão: 10/10/2016 02:10: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
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)