У меня периодически возникали ошибки OOM в SQL Server, один раз до того, что SQL Server сам закрывался и всегда происходил в ночное время, когда его никто не использовал, и в это время не выполнялось задание агента SQL:
Вот типичная ошибка:
17.08.2017 19: 31: 17, spid100, Unknown, Недостаточно системной памяти в «внутреннем» пуле ресурсов для выполнения этого запроса.
17.08.2017 19: 31: 17, spid100, Неизвестно, Ошибка: 701 Серьезность: 17 Состояние: 123.
17.08.2017 19: 31: 17, spid112, Неизвестно, Ошибка: 18056 Уровень серьезности: 20 Состояние: 29. (Параметры :). Ошибка печатается в кратком режиме, потому что во время форматирования произошла ошибка. Трассировка уведомлений ETW и т. Д. Пропускаются.
Вот информация о сервере:
- 10 ГБ MIN памяти SQL сервера
- 21 ГБ МАКС. Память сервера SQL
- только 4 БД на сервере
- их размеры составляют всего от 1 до 2 ГБ каждый
- Размер базы данных Tempdb никогда не увеличивался до более чем 1 ГБ (установлено автоматическое увеличение до 10 ГБ)
- Все индексы слабо фрагментированы, статистика обновлена
Версия:
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)
Я проверил несколько пунктов:
- DBCC memorystatus
Быстрая статистика:
SELECT (physical_memory_in_use_kb/1024)/1024 AS [PhysicalMemInUseGB] FROM sys.dm_os_process_memory; GO Output: 20 GB Page Life Expectancy 155932
Регулятор ресурсов не включен:
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
Сервер установлен на SP3, я знаю, что в SP1 была проблема утечки памяти, поэтому исключаю ее.
Кто-нибудь заметил что-нибудь в результате DBCC, на котором я должен сосредоточиться?