Estou usando o SQL Server 2014 - 12.0.2269.0 (X64) no Windows Server 2012 e estou com alguns problemas de memória. Quando executo um procedimento armazenado que está fazendo um cálculo bastante "pesado", recebo um erro depois de 10 minutos:
Não há memória suficiente no sistema no pool de recursos 'padrão' para executar esta consulta.
Meu SQL Server possui vários bancos de dados (como 15, mas eles nem sempre são usados ao mesmo tempo). Eu olhei para o arquivo de log do SQL Server (depois que recebi o erro) e vi muitas linhas como esta:
2015-12-17 12: 00: 37.57 spid19s Não permitir alocações de página para o banco de dados 'Database_Name' devido à memória insuficiente no conjunto de recursos 'padrão'. Consulte ' http://go.microsoft.com/fwlink/?LinkId=330673 ' para obter mais informações.
Um relatório é gerado no log com a memória usada por cada componente (eu acho). Se eu interpretar corretamente o relatório, podemos ver que há muita memória consumida MEMORYCLERK_SQLBUFFERPOOL
. Você pode encontrar o relatório aqui: http://pastebin.com/kgmk9dPH
Também gerei um relatório com um gráfico que mostra a mesma "conclusão":
Aqui estão outros relatórios úteis:
Observe que eu também vi esse erro no log:
2015-12-17 12: 04: 52.37 spid70 Falha na alocação de página devido à pressão da memória do banco de dados: FAIL_PAGE_ALLOCATION 8
Aqui estão algumas informações sobre a memória do servidor:
Memória total no servidor: 16 Gb
Memória alocada para o servidor SQL: 12288 Mb
Memória física em uso (de
sys.dm_os_process_memory
): 9287 Mb
Se puder ajudar, o servidor não hospeda nenhum banco de dados do SharePoint.
fonte
Respostas:
Embora essa provavelmente não seja uma resposta exata para o seu problema, eu a publicarei de qualquer maneira, esperando que possa ajudá-lo de alguma forma.
O que você está vendo não é
MEMORYCLERK_SQLBUFFERPOOL
oMEMORYCLERK_SQLLOGPOOL
que está ocupando toda a memória.Há um problema conhecido no SQL 2012 O SQL Server 2012 apresenta erros de falta de memória . Mesmo que você esteja executando 2014, é possível que você esteja executando o mesmo problema (mesmo que eu não tenha encontrado um item de conexão para 2014).
Há também esse problema conhecido para 2014 e 2012 envolvendo reconstruções de índice e
always on
. Você não especificou que está usando isso, mas talvez o mesmo bug tenha outros gatilhos: CORRECÇÃO: a memória cache do SQL diminui e o uso da CPU aumenta quando você reconstrói um índice para uma tabela no SQL ServerPortanto, minha melhor sugestão no momento é atualizar para a UC mais recente e ver se isso ainda acontece, pois houve algumas correções
MEMORYCLERK_SQLLOGPOOL
recentemente. Como você está executando o RTM com apenas duas correções de segurança que possam fazer sentido, existem várias CUs disponíveis no SP1 +.Como também há um uso de memória bastante alto
MEMORYCLERK_XTP
usadoin-memory OLTP
neste artigo, poderá ajudá-lo a solucionar problemas: Monitorar e solucionar problemas de uso de memóriafonte