sys.dm_os_out_of_memory_events
Aplica-se a: Instância Gerenciada de SQL do Azure do Banco de Dados SQL do Azure
Retorna um log de eventos OOM (falta de memória).
Para obter mais informações sobre condições de falta de memória no Banco de Dados SQL do Azure, consulte Solucionar problemas de erros de memória insuficiente no Banco de Dados SQL do Azure.
Nome da Coluna | Tipo de Dados | Descrição |
---|---|---|
event_time |
datetime2, não nulo | Hora do evento OOM |
oom_cause |
tinyint, não nulo | Um valor numérico que indica a causa raiz do OOM. A causa OOM é determinada por um algoritmo heurístico e é fornecida com um grau finito de confiança. |
oom_cause_desc |
nvarchar(60), não nulo | Descrição de oom_cause , um dos seguintes:0. DESCONHECIDO - A causa do OOM não pôde ser determinada 1. HEKATON_POOL_MEMORY_LOW - Memória insuficiente no pool de recursos usado para OLTP in-memory. Para obter mais informações, consulte Monitorar OLTP na memória. 2. MEMORY_LOW - Memória insuficiente disponível para o processo do mecanismo de banco de dados 3. OS_MEMORY_PRESSURE - OOM devido à pressão da memória externa do sistema operacional 4. OS_MEMORY_PRESSURE_SQL - OOM devido à pressão de memória externa de outras instâncias do mecanismo de banco de dados 5. NON_SOS_MEMORY_LEAK - OOM devido a um vazamento na memória não SOS, por exemplo, módulos carregados 6. SERVERLESS_MEMORY_RECLAMATION - OOM relacionado à recuperação de memória em um banco de dados serverless 7. MEMORY_LEAK - OOM devido a um vazamento na memória SOS 8. SLOW_BUFFER_POOL_SHRINK - OOM devido ao pool de buffers não liberar memória rápido o suficiente sob pressão de memória 9. INTERNAL_POOL - Memória insuficiente no pool de recursos internos 10. SYSTEM_POOL - Memória insuficiente em um pool de recursos do sistema 11. QUERY_MEMORY_GRANTS - OOM devido a grandes concessões de memória mantidas por consultas 12. REPLICAS_AND_AVAILABILITY - OOM devido a cargas de trabalho no pool de recursos SloSecSharedPool |
available_physical_memory_mb |
int, não nulo | Memória física disponível, em megabytes |
initial_job_object_memory_limit_mb |
int, null | Limite de memória do objeto de trabalho na inicialização do mecanismo de banco de dados, em megabytes. Para obter mais informações sobre Objetos de Trabalho, consulte Governança de recursos. |
current_job_object_memory_limit_mb |
int, null | Limite de memória atual do objeto de trabalho, em megabytes |
process_memory_usage_mb |
int, não nulo | Uso total da memória do processo em megabytes pela instância |
non_sos_memory_usage_mb |
int, não nulo | Uso não SOS em megabytes, incluindo threads criados pelo SOS, threads criados por componentes não SOS, DLLs carregadas, etc. |
committed_memory_target_mb |
int, não nulo | Memória de destino SOS em megabytes |
committed_memory_mb |
int, não nulo | Memória SOS confirmada em megabytes |
allocation_potential_memory_mb |
int, não nulo | Memória disponível para a instância do mecanismo de banco de dados para novas alocações, em megabytes |
oom_factor |
tinyint, não nulo | Um valor que fornece informações adicionais relacionadas ao evento OOM, somente para uso interno |
oom_factor_desc |
nvarchar(60), não nulo | Descrição do oom_factor . Somente para uso Interno. Um destes:0 - INDEFINIDO 1 - ALLOCATION_POTENTIAL 2 - BLOCK_ALLOCATOR 3 - ESCAPE_TIMEOUT 4 - FAIL_FAST 5 - MEMORY_POOL 6 - EMERGENCY_ALLOCATOR 7 - VIRTUAL_ALLOC 8 - SIMULADO 9 - BUF_ALLOCATOR 10 - QUERY_MEM_QUEUE 11 - FRAGMENTO 12 - INIT_DESCRIPTOR 13 - MEMORY_POOL_PRESSURE 14 - DESCRIPTOR_ALLOCATOR 15 - DESCRIPTOR_ALLOCATOR_ESCAPE |
oom_resource_pools |
nvarchar(max), nulo | Pools de recursos que estão sem memória, incluindo estatísticas de uso de memória para cada pool. Essas informações são fornecidas como um valor JSON. |
top_memory_clerks |
nvarchar(max), não nulo | Principais funcionários de memória por consumo de memória, incluindo estatísticas de uso de memória para cada funcionário. Essas informações são fornecidas como um valor JSON. |
top_resource_pools |
nvarchar(max), não nulo | Principais pools de recursos por consumo de memória, incluindo estatísticas de uso de memória para cada pool de recursos. Essas informações são fornecidas como um valor JSON. |
possible_leaked_memory_clerks |
nvarchar(max), nulo | Funcionários de memória que vazaram memória. Baseado em heurísticas e fornecido com um grau finito de confiança. Essas informações são fornecidas como um valor JSON. |
possible_non_sos_leaked_memory_mb |
int, null | Memória não-SOS vazada em megabytes, se houver. Baseado em heurísticas e fornecido com um grau finito de confiança. |
Permissões
Na Instância Gerenciada de SQL do Azure, requer VIEW SERVER STATE
permissão.
Nos objetivos de serviço Básico, S0 e S1 do Banco de Dados SQL e para bancos de dados em pools elásticos, a conta de administrador do servidor, a conta de administrador do Microsoft Entra ou a ##MS_ServerStateReader##
associação na função de servidor são necessárias. Em todos os outros objetivos de serviço do Banco de Dados SQL, a permissão VIEW DATABASE STATE
no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##
são necessárias.
Comentários
Cada linha nesse modo de exibição representa um evento OOM (memória insuficiente) que ocorreu no mecanismo de banco de dados. Nem todos os eventos OOM podem ser capturados. Eventos OOM mais antigos podem desaparecer do conjunto de resultados à medida que ocorrem eventos OOM mais recentes. O conjunto de resultados não é mantido entre reinicializações do mecanismo de banco de dados.
Atualmente, essa DMV está visível, mas não tem suporte no SQL Server 2022 (16.x).
summarized_oom_snapshot evento estendido
O evento estendido summarized_oom_snapshot
faz parte da sessão de evento existente system_health
para simplificar a detecção. Esse evento aparece quando eventos de memória insuficiente (OOM) são detectados. Essa DMV se alinha à atividade registrada no evento estendido, ambos introduzidos summarized_oom_snapshot
no Banco de Dados SQL do Azure em janeiro de 2022. Para obter mais informações, consulte o blog: Uma nova maneira de solucionar erros de memória no mecanismo de banco de dados.
Exemplo
O exemplo a seguir retorna dados de evento ordenados pela hora mais recente para o banco de dados conectado no momento.
SELECT * FROM sys.dm_os_out_of_memory_events ORDER BY event_time DESC;
Conteúdo relacionado
- sys. resource_stats
- sys.server_resource_stats
- sys.dm_db_resource_stats (Banco de Dados SQL do Azure)
- Otimizar o desempenho usando tecnologias na memória no Banco de Dados SQL do Azure
- Otimizar o desempenho usando tecnologias na memória na Instância Gerenciada de SQL do Azure
- Monitorar o armazenamento OLTP in-memory no Banco de Dados SQL do Azure
- Monitorar o armazenamento OLTP in-memory na Manutenção Gerenciada de SQL do Azure
- Solucionar problemas com erros de falta de memória no Banco de Dados SQL do Azure