sys.dm_os_out_of_memory_events
적용 대상: Azure SQL 데이터베이스 Azure SQL Managed Instance
OOM(메모리 부족) 이벤트의 로그를 반환합니다.
Azure SQL Database의 메모리 부족 상태에 대한 자세한 내용은 Azure SQL Database의 메모리 부족 오류 문제를 참조하세요.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
event_time |
datetime, null이 아님 | OOM 이벤트 시간입니다. |
oom_cause |
tinyint, null이 아님 | OOM 근본 원인을 나타내는 숫자 값입니다. OOM 원인은 추론 알고리즘에 의해 결정되며 한정된 신뢰도로 제공됩니다. |
oom_cause_desc |
nvarchar(30), null이 아님 | 에 대한 설명은 oom_cause 다음 중 하나입니다.0. UNKNOWN - 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 - 비 SOS 메모리의 누수로 인한 OOM(예: 로드된 모듈) 6. SERVERLESS_MEMORY_RECLAMATION - 서버리스 데이터베이스의 메모리 매립과 관련된 OOM 7. MEMORY_LEAK - SOS 메모리 누수로 인한 OOM 8. SLOW_BUFFER_POOL_SHRINK - 버퍼 풀이 메모리 압력 하에서 메모리를 충분히 빠르게 해제하지 않기 때문에 OOM 9. INTERNAL_POOL - 내부 리소스 풀의 메모리 부족 10. SYSTEM_POOL - 시스템 리소스 풀의 메모리 부족 11. QUERY_MEMORY_GRANTS - 쿼리에서 보유한 대용량 메모리 부여로 인한 OOM 12. REPLICAS_AND_AVAILABILITY - SloSecSharedPool 리소스 풀의 워크로드로 인한 OOM |
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 구성 요소에서 만든 스레드, 로드된 DLL 등을 포함하여 SOS가 아닌 사용량(메가바이트)입니다. |
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(30), null이 아님 | 에 대한 설명입니다 oom_factor . 내부 전용. 다음 중 하나입니다.0 - UNDEFINED 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(4000), null | 각 풀에 대한 메모리 사용 통계를 포함하여 메모리 부족 리소스 풀입니다. 이 정보는 JSON 값으로 제공됩니다. |
top_memory_clerks |
nvarchar(4000), null | 각 클럭에 대한 메모리 사용 통계를 포함하여 메모리 사용량별 상위 메모리 클럭 이 정보는 JSON 값으로 제공됩니다. |
top_resource_pools |
nvarchar(4000), null | 각 리소스 풀에 대한 메모리 사용 통계를 포함하여 메모리 사용량별 상위 리소스 풀입니다. 이 정보는 JSON 값으로 제공됩니다. |
possible_leaked_memory_clerks |
nvarchar(4000), null | 메모리가 누수된 메모리 클럭입니다. 추론을 기반으로 하며 한정된 수준의 신뢰도를 제공합니다. 이 정보는 JSON 값으로 제공됩니다. |
possible_non_sos_leaked_memory_mb |
int, null | SOS가 아닌 메모리가 MB(있는 경우)로 유출되었습니다. 추론을 기반으로 하며 한정된 수준의 신뢰도를 제공합니다. |
사용 권한
Azure SQL Managed Instance에서 사용 권한이 필요합니다 VIEW SERVER PERFORMANCE STATE
.
SQL Database Basic, S0 및 S1 서비스 목표 또는 탄력적 풀 내의 데이터베이스에 대해서는 서버 관리자 계정, Microsoft Entra 관리자 계정 또는 ##MS_ServerPerformanceStateReader##
서버 역할의 멤버 자격이 필요합니다. 다른 모든 SQL Database 서비스 목표에 대해서는 데이터베이스에 대한 VIEW DATABASE PERFORMANCE STATE
권한 또는 ##MS_ServerPerformanceStateReader##
서버 역할의 멤버 자격이 필요합니다.
설명
이 보기의 각 행은 데이터베이스 엔진에서 발생한 OOM(메모리 부족) 이벤트를 나타냅니다. 모든 OOM 이벤트를 캡처할 수 있는 것은 아닙니다. 최신 OOM 이벤트가 발생하면 이전 OOM 이벤트가 결과 집합에서 사라질 수 있습니다. 결과 집합은 데이터베이스 엔진을 다시 시작할 때 유지되지 않습니다.
현재 이 DMV는 SQL Server 2022(16.x)에서 표시되지만 지원되지 않습니다.
확장 이벤트 summarized_oom_snapshot
summarized_oom_snapshot
확장 이벤트는 메모리 부족 이벤트 검색을 system_health
간소화하기 위한 이벤트 세션의 일부입니다. 각 summarized_oom_snapshot
확장 이벤트는 의 행에 sys.dm_os_out_of_memory_events
해당합니다. 자세한 내용은 블로그: 데이터베이스 엔진의 메모리 부족 오류를 해결하는 새로운 방법을 참조하세요.
예시
다음 예제에서는 현재 연결된 데이터베이스를 호스팅하는 데이터베이스 엔진에 대해 가장 최근 시간별로 정렬된 이벤트 데이터를 반환합니다.
SELECT *
FROM sys.dm_os_out_of_memory_events
ORDER BY event_time DESC;
관련 콘텐츠
- sys.resource_stats
- sys.server_resource_stats
- sys.dm_db_resource_stats(Azure SQL 데이터베이스)
- Azure SQL Database에서 메모리 내 기술을 사용하여 성능 최적화
- Azure SQL Managed Instance에서 메모리 내 기술을 사용하여 성능 최적화
- Azure SQL 데이터베이스에서 메모리 내 OLTP 스토리지 모니터링
- Azure SQL Managed Instance에서 메모리 내 OLTP 스토리지 모니터링
- Azure SQL Database를 사용하여 메모리 부족 오류 문제 해결