Estou tendo erros periódicos de OOM do SQL Server, uma vez que o SQL Server se desligava e sempre acontecia durante a noite, quando ninguém o usava e nenhum trabalho do SQL Agent em execução naquele momento:
Aqui está o erro típico:
17/08/2017 19: 31: 17, spid100, Desconhecido, Não há memória do sistema insuficiente no pool de recursos 'interno' para executar esta consulta.
17/08/2017 19: 31: 17, spid100, Desconhecido, Erro: 701 Gravidade: 17 Estado: 123.
17/08/2017 19: 31: 17, spid112, Desconhecido, Erro: 18056 Gravidade: 20 Estado: 29. (Params :). O erro é impresso no modo conciso porque ocorreu um erro durante a formatação. As notificações de rastreamento ETW etc. são ignoradas.
Aqui estão as informações do servidor:
- Memória mínima do servidor SQL de 10 GB
- Memória máxima do servidor SQL de 21 GB
- apenas 4 DBs no servidor
- seus tamanhos são de apenas 1 a 2 GB cada
- O tamanho do tempdb nunca cresceu para mais de 1 GB (definido como aumento automático para 10 GB)
- Os índices são todos baixos, as estatísticas atualizadas
Versão:
Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) Oct 20 2015 15:36:27 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
Eu verifiquei vários itens:
- Estado da memória DBCC
Estatísticas rápidas:
SELECT (physical_memory_in_use_kb/1024)/1024 AS [PhysicalMemInUseGB] FROM sys.dm_os_process_memory; GO Output: 20 GB Page Life Expectancy 155932
Nenhum administrador de recursos ativado:
select pool_id, cache_memory_kb, used_memory_kb, out_of_memory_count,used_memgrant_kb from sys.dm_resource_governor_resource_pools Output: pool_id | cache_memory_kb | used_memory_kb | out_of_memory_count | used_memgrant_kb --------+-----------------+----------------+---------------------+----------------- 1 | 295368 | 641416 | 0 | 0 select (physical_memory_in_use_kb/1024) Memory_usedby_Sqlserver_MB, (locked_page_allocations_kb/1024) Locked_pages_used_Sqlserver_MB, (total_virtual_address_space_kb/1024 )Total_VAS_in_MB, process_physical_memory_low, process_virtual_memory_low from sys. dm_os_process_memory Output: Memory_usedby_Sqlserver_MB | Locked_pages_used_Sqlserver_MB | Total_VAS_in_MB | process_physical_memory_low | process_virtual_memory_low ---------------------------------------------------------------------------------------------------------------------------------------- 20553 | 20393 | 134217727 | 0 | 0
O servidor está no SP3, eu sei que houve um problema de vazamento de memória no SP1, descartando isso.
Alguém notou alguma coisa no resultado do DBCC em que eu deveria me concentrar?