Ho avuto periodici errori OOM di SQL Server, una volta al punto che SQL Server si è chiuso da solo e si è sempre verificato durante la notte, quando nessuno lo utilizza e nessun lavoro di SQL Agent in esecuzione in quel momento:
Ecco l'errore tipico:
17/08/2017 19: 31: 17, spid100, Sconosciuto, memoria di sistema insufficiente nel pool di risorse "interna" per eseguire questa query.
17/08/2017 19: 31: 17, spid100, sconosciuto, errore: 701 Gravità: 17 Stato: 123.
17/08/2017 19: 31: 17, spid112, sconosciuto, errore: 18056 Gravità: 20 Stato: 29. (Params :). L'errore viene stampato in modalità concisa perché si è verificato un errore durante la formattazione. Le notifiche ETW di traccia ecc. Vengono ignorate.
Ecco le informazioni sul server:
- Memoria del server SQL MIN da 10 GB
- Memoria del server SQL MAX da 21 GB
- solo 4 DB sul server
- le loro dimensioni sono solo da 1 a 2 GB ciascuna
- Le dimensioni del tempdb non sono mai aumentate a più di 1 GB (impostato per crescere automaticamente a 10 GB)
- Gli indici sono tutti frammentati, statistiche aggiornate
Versione:
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)
Ho controllato più elementi:
- Memoria DBCC
Statistiche rapide:
SELECT (physical_memory_in_use_kb/1024)/1024 AS [PhysicalMemInUseGB] FROM sys.dm_os_process_memory; GO Output: 20 GB Page Life Expectancy 155932
Nessun regolatore di risorse abilitato:
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
Il server è su SP3, so che c'era un problema di perdita di memoria in SP1, quindi lo escludo.
Qualcuno nota qualcosa nel risultato DBCC su cui dovrei concentrarmi?