Поделиться через


sys.dm_os_out_of_memory_events

Применимо к: База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает выход из памяти (OOM).

Дополнительные сведения об условиях нехватки памяти в База данных SQL Azure см. в разделе "Устранение неполадок с нехваткой памяти" в База данных SQL Azure.

Имя столбца Тип данных Description
event_time datetime2, не null Время события OOM
oom_cause tinyint, не null Числовое значение, указывающее первопричину OOM. Причина OOM определяется эвристических алгоритмом и предоставляется с конечной степенью достоверности.
oom_cause_desc nvarchar(60), не null Описание одного из следующих вариантов oom_cause:
0. Неизвестно - не удалось определить причину OOM
1. HEKATON_POOL_MEMORY_LOW — недостаточно памяти в пуле ресурсов, используемом для OLTP в памяти. Дополнительные сведения см. в разделе "Мониторинг в памяти OLTP".
2. MEMORY_LOW. Недостаточно памяти, доступной процессу ядра СУБД
3. OS_MEMORY_PRESSURE — OOM из-за давления внешней памяти операционной системы
4. OS_MEMORY_PRESSURE_SQL — OOM из-за внешнего давления памяти из других экземпляров ядра СУБД
5. NON_SOS_MEMORY_LEAK — OOM из-за утечки в памяти, отличной от SOS, например загруженных модулей
6. SERVERLESS_MEMORY_RECLAMATION — OOM, связанная с восстановлением памяти в бессерверной базе данных
7. MEMORY_LEAK — OOM из-за утечки в памяти SOS
8. SLOW_BUFFER_POOL_SHRINK — OOM из-за того, что буферный пул не освобождает память достаточно быстро под давлением памяти.
9. INTERNAL_POOL . Недостаточно памяти во внутреннем пуле ресурсов
10. SYSTEM_POOL — недостаточно памяти в системном пуле ресурсов
11. QUERY_MEMORY_GRANTS — OOM из-за больших объемов памяти, предоставляемых запросами
12. REPLICAS_AND_AVAILABILITY — OOM из-за рабочих нагрузок в пуле ресурсов SloSecSharedPool
available_physical_memory_mb int, не null Доступная физическая память в мегабайтах
initial_job_object_memory_limit_mb int, null Ограничение памяти объекта задания при запуске ядра СУБД в мегабайтах. Дополнительные сведения о объектах заданий см. в разделе "Управление ресурсами".
current_job_object_memory_limit_mb int, null Текущее ограничение памяти объекта задания в мегабайтах
process_memory_usage_mb int, не null Общее использование памяти процесса в мегабайтах экземпляром
non_sos_memory_usage_mb int, не null Использование, отличное от SOS в мегабайтах, включая созданные потоки SOS, потоки, созданные компонентами, не являющихся SOS, загруженные библиотеки DLL и т. д.
committed_memory_target_mb int, не null Целевая память SOS в мегабайтах
committed_memory_mb int, не null Зафиксированная память SOS в мегабайтах
allocation_potential_memory_mb int, не null Память, доступная экземпляру ядра СУБД для новых выделений в мегабайтах
oom_factor tinyint, не null Значение, которое предоставляет дополнительные сведения, связанные с событием OOM, только для внутреннего использования
oom_factor_desc nvarchar(60), не null oom_factorОписание . Только для внутреннего пользования. Одно из двух значений:
0 — НЕОПРЕДЕЛЕННЫЙ
1 - ALLOCATION_POTENTIAL
2 — BLOCK_ALLOCATOR
3 — ESCAPE_TIMEOUT
4 — FAIL_FAST
5 - MEMORY_POOL
6 — EMERGENCY_ALLOCATOR
7 — VIRTUAL_ALLOC
8 — ИМИТАЦИЯ
9 - BUF_ALLOCATOR
10 - QUERY_MEM_QUEUE
11 — ФРАГМЕНТ
12 - INIT_DESCRIPTOR
13 - MEMORY_POOL_PRESSURE
14 - DESCRIPTOR_ALLOCATOR
15 - DESCRIPTOR_ALLOCATOR_ESCAPE
oom_resource_pools nvarchar(max), null Пулы ресурсов, не имеющие памяти, включая статистику использования памяти для каждого пула. Эти сведения предоставляются в виде значения JSON.
top_memory_clerks nvarchar(max), не null Основные клерки памяти по объему памяти, включая статистику использования памяти для каждого клерка. Эти сведения предоставляются в виде значения JSON.
top_resource_pools nvarchar(max), не null Основные пулы ресурсов по использованию памяти, включая статистику использования памяти для каждого пула ресурсов. Эти сведения предоставляются в виде значения JSON.
possible_leaked_memory_clerks nvarchar(max), null Клерки памяти, которые утечки памяти. Основываясь на эвристики и обеспеченной конечной степенью достоверности. Эти сведения предоставляются в виде значения JSON.
possible_non_sos_leaked_memory_mb int, null Утечка памяти, отличной от SOS в мегабайтах, если таковые есть. Основываясь на эвристики и обеспеченной конечной степенью достоверности.

Разрешения

Для Управляемый экземпляр SQL Azure требуется VIEW SERVER STATE разрешение.

Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader## роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE в базе данных или членство в роли сервера ##MS_ServerStateReader##.

Замечания

Каждая строка в этом представлении представляет событие вне памяти (OOM), которое произошло в ядре СУБД. Не все события OOM могут быть записаны. Старые события OOM могут исчезнуть из результирующий набор, так как происходят более последние события OOM. Результирующий набор не сохраняется во время перезапуска ядра СУБД.

В настоящее время это динамическое административное представление отображается, но не поддерживается в SQL Server 2022 (16.x).

расширенное событие summarized_oom_snapshot

Расширенное summarized_oom_snapshot событие является частью существующего system_health сеанса событий для упрощения обнаружения. Это событие появляется при обнаружении событий, не связанных с памятью (OOM). Это динамическое административное представление соответствует действиям, записанным в расширенном summarized_oom_snapshot событии, как введено в База данных SQL Azure в январе 2022 года. Дополнительные сведения см . в блоге: новый способ устранения ошибок вне памяти в ядре СУБД.

Пример

В следующем примере возвращаются данные событий, упорядоченные по последнему времени для подключенной базы данных.

SELECT * FROM sys.dm_os_out_of_memory_events ORDER BY event_time DESC;