SQL ServerのOOMエラーが定期的に発生しました。SQLServerが自動的にシャットダウンし、常に夜間に発生し、誰も使用しておらず、SQLエージェントジョブも実行されていませんでした。
ここに典型的なエラーがあります:
2017年8月17日19:31:17、spid100、不明、このクエリを実行するには、リソースプール '内部'にシステムメモリが不足しています。
2017年8月17日19:31:17、spid100、不明、エラー:701重要度:17状態:123。
08/17/2017 19:31:17、spid112、Unknown、Error:18056 Severity:20 State:29.(Params :)。フォーマット中にエラーが発生したため、エラーは簡略モードで出力されます。ETW通知などのトレースはスキップされます。
サーバー情報は次のとおりです。
- 10GB MIN SQLサーバーメモリ
- 21GB MAX SQLサーバーメモリ
- サーバー上に4つのDBのみ
- サイズはそれぞれ1〜2 GBです
- Tempdbのサイズが1 GBを超えることはありません(10 GBに自動拡張するように設定)
- インデックスはすべて低フラグであり、統計が更新されます
バージョン:
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メモリステータス
クイック統計:
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の結果で注意すべき点に気づきましたか