메모리 속성
적용 대상: SQL Server Analysis Services Azure Analysis Services 패브릭/Power BI Premium
Analysis Services는 요청을 즉시 처리할 수 있도록 시작 시 적절한 메모리 양을 사전 할당합니다. 쿼리 및 처리 작업이 증가함에 따라 추가 메모리가 할당됩니다. 구성 설정을 지정하여 메모리가 해제되는 임계값을 제어할 수 있습니다.
참고
QueryMemoryLimit 는 Power BI에 적용되는 유일한 Memory 속성입니다.
기본 메모리 구성
기본 구성에서 각 instance instance 유휴 상태인 경우에도 시작 시 소량의 RAM(40MB~50MB)을 할당합니다. 구성 설정은 instance 따라 다릅니다. 동일한 하드웨어에서 테이블 형식 및 다차원 instance 같은 여러 인스턴스를 실행하는 경우 각 instance 다른 인스턴스와 독립적으로 자체 메모리를 할당합니다.
설정 | 설명 |
---|---|
LowMemoryLimit | 다차원 인스턴스에서 서버가 자주 사용되지 않는 개체에 할당된 메모리를 처음 해제하기 시작하는 하한 임계값입니다. |
VertiPaqMemoryLimit | 테이블 형식 인스턴스에서 서버가 자주 사용되지 않는 개체에 할당된 메모리를 처음 해제하기 시작하는 하한 임계값입니다. |
TotalMemoryLimit | Analysis Services가 실행 중인 요청과 새로운 높은 우선 순위 요청을 위한 공간을 확보하기 위해 메모리를 보다 적극적으로 해제하기 시작하는 상한 임계값입니다. |
HardMemoryLimit | Analysis Services가 메모리 압력으로 인해 완전히 요청을 거부하기 시작하는 또 다른 임계값입니다. |
속성
1과 100 사이의 값은 실제 총 메모리 또는 가상 주소 공간중 더 작은 쪽의 백분율을 나타냅니다. 100을 초과하는 값은 메모리 제한(바이트)을 나타냅니다.
DefaultPagesCountToReuse
Microsoft 지원의 지침에 따라 변경하는 경우를 제외하고 변경하면 안 되는 고급 속성입니다.
HandleIA64AlignmentFaults
Microsoft 지원의 지침에 따라 변경하는 경우를 제외하고 변경하면 안 되는 고급 속성입니다.
HardMemoryLimit
인스턴스가 메모리 사용량을 줄이기 위해 활성 사용자 세션을 적극적으로 종료하기 시작하는 메모리 임계값을 지정합니다. 종료된 모든 세션은 메모리 압력으로 취소되는 것에 대한 오류를 수신합니다. 기본값 영(0)은 HardMemoryLimit 가 TotalMemoryLimit 와 시스템의 실제 총 메모리 사이의 중간 값으로 설정됨을 의미합니다. 시스템의 실제 메모리가 프로세스의 가상 주소 공간보다 큰 경우 HardMemoryLimit를 계산할 때 가상 주소 공간이 대신 사용됩니다. 이 값은 Azure Analysis Services 구성할 수 없습니다.
HeapTypeForObjects
Microsoft 지원의 지침에 따라 변경하는 경우를 제외하고 변경하면 안 되는 고급 속성입니다. 유효한 값은 다음과 같습니다.
설정 | Description |
---|---|
-1 | (기본값) 자동. 사용할 항목을 엔진이 결정합니다. |
0 | Windows LFH 힙 |
1 | Analysis Services 슬롯 할당자. |
3 | 각 개체에 자체 Analysis Services 힙이 있습니다. |
HighMemoryPrice
Microsoft 지원의 지침에 따라 변경하는 경우를 제외하고 변경하면 안 되는 고급 속성입니다.
LowMemoryLimit
Analysis Services가 자주 사용되지 않는 캐시와 같이 우선 순위가 낮은 개체에 대한 메모리 해제를 시작하는 첫 번째 임계값을 정의하는 부호 있는 64비트 배정밀도 부동 소수점 숫자 속성입니다. 메모리가 할당되고 나면 서버에서 이 제한 아래로 메모리를 해제하지 않습니다. 기본값은 65이며 이 경우 메모리 하한은 실제 메모리 또는 가상 주소 공간의 65% 중 더 작은 쪽으로 설정됩니다.
MemoryHeapType
Microsoft 지원의 지침에 따라 변경하는 경우를 제외하고 변경하면 안 되는 고급 속성입니다. SQL Server 2016 SP1 이상 Analysis Services의 유효한 값은 다음과 같습니다.
설정 | Description |
---|---|
-1 | (기본값) 자동. 사용할 항목을 엔진이 결정합니다. |
1 | Analysis Services 힙 |
2 | Windows LFH |
5 | 하이브리드 할당자. 이 할당자는 = 16KB 할당에 <Windows LFH를 사용하고 16KB 할당에 >AS 힙을 사용합니다. |
6 | Intel TBB 할당자. SQL Server 2016 SP1 이상 Analysis Services에서 사용할 수 있습니다. |
MidMemoryPrice
Microsoft 지원의 지침에 따라 변경하는 경우를 제외하고 변경하면 안 되는 고급 속성입니다.
MinimumAllocatedMemory
Microsoft 지원의 지침에 따라 변경하는 경우를 제외하고 변경하면 안 되는 고급 속성입니다.
PreAllocate
Microsoft 지원의 지침에 따라 변경하는 경우를 제외하고 변경하면 안 되는 고급 속성입니다.
QueryMemoryLimit
Power BI, Azure Analysis Services 및 SQL Server 2019 이상 Analysis Services에만 적용됩니다. 쿼리 중에 사용할 수 있는 메모리 양을 제어하는 고급 속성입니다.
SQL Server 2019 이상 Analysis Services에서 이 설정은 쿼리 처리 중에 중간 DAX 쿼리 결과가 만들어지는 메모리 스풀에만 적용됩니다. MDX 쿼리에는 적용되지 않습니다.
Power BI, Azure Analysis Services 및 SQL Server 2022 이상 Analysis Services에서 ResourceTrackingEnabledFeature 속성을 사용하도록 설정한 경우 이 설정은 메모리 스풀로만 제한되지 않습니다. 테이블 형식 모드에서 DAX 및 MDX 쿼리에서 모두 사용하는 모든 메모리에만 적용됩니다.
최대 100%까지 지정됩니다. 100을 초과하면 바이트 단위입니다. 값을 0으로 설정하면 제한이 지정되지 않습니다.
Azure Analysis Services 기본값은 계획에 따라 결정됩니다.
계획 | 기본값 |
---|---|
D1 | 80 |
나머지 | 20 |
SessionMemoryLimit
Microsoft 지원의 지침에 따라 변경하는 경우를 제외하고 변경하면 안 되는 고급 속성입니다.
TotalMemoryLimit
에 도달하면 서버가 메모리를 할당 해제하여 다른 요청을 위한 공간을 확보할 수 있는 임계값을 정의합니다. 이 제한에 도달하면 인스턴스는 만료된 세션을 닫고 사용되지 않는 계산을 언로드하여 천천히 캐시 메모리를 지우기 시작합니다. SQL Server Analysis Services 경우 기본값은 실제 메모리 또는 가상 주소 공간의 80%입니다. Azure Analysis Services 기본값은 계획을 기반으로 하며 구성할 수 없습니다. TotalMemoryLimit 는 항상 HardMemoryLimit보다 작아야 합니다.
VertiPaqMemoryLimit
테이블 형식 인스턴스에만 적용되며, 디스크로의 페이징이 허용되는 경우 이 속성은 페이징이 시작되는 메모리 소비 수준(총 메모리에 대한 백분율)을 지정합니다. 기본값은 60입니다. 메모리 소비가 60% 이하이면 서버가 디스크로 페이징하지 않습니다. 이 속성을 사용하려면 VertiPaqPagingPolicyProperty를 1로 설정하여 페이징이 발생할 수 있도록 해야 합니다.
VertiPaqPagingPolicy
테이블 형식 인스턴스에만 적용되며, 서버의 메모리가 부족한 경우에 발생하는 페이징 동작을 지정합니다. 유효한 값은 다음과 같습니다.
설정 | 설명 |
---|---|
0 | (Azure Analysis Services 및 Power BI의 경우 기본값) 페이징을 사용하지 않도록 설정합니다. 메모리가 부족하면 메모리 부족 오류로 처리가 실패합니다. 페이징을 사용하지 않도록 설정한 경우 서비스 계정에 대한 권한을 Windows에 부여해야 합니다. 지침 은 서비스 계정 구성(Analysis Services) 을 참조하세요. |
1 | (SQL Server Analysis Services 기본값) 이 속성을 사용하면 운영 체제 페이지 파일(pagefile.sys)을 사용하여 디스크에 페이징할 수 있습니다. |
1로 설정될 경우 서버는 지정된 방법을 사용하여 디스크로 페이징을 시도하기 때문에 메모리 제약 조건으로 인해 처리가 실패할 가능성이 적습니다. VertiPaqPagingPolicy 속성을 설정한다고 해서 메모리 오류가 절대로 발생하지 않는 것은 아닙니다. 다음과 같은 상황에서 메모리 부족 오류가 여전히 발생할 수 있습니다.
모든 사전에 대해 메모리가 충분하지 않습니다. 처리하는 동안 서버는 메모리의 각 열에 대한 사전을 잠급니다. 이러한 모든 사전은 VertiPaqMemoryLimit에 지정된 값보다 많을 수 없습니다.
프로세스를 수용하기에 가상 주소 공간이 부족합니다.
지속적인 메모리 오류를 해결하려면 처리해야 할 데이터의 양을 줄이도록 모델을 다시 디자인하거나, 컴퓨터에 메모리를 추가합니다.
VirtualMemoryLimit
Microsoft 지원의 지침에 따라 변경하는 경우를 제외하고 변경하면 안 되는 고급 속성입니다.
WaitCountIfHighMemory
Microsoft 지원의 지침에 따라 변경하는 경우를 제외하고 변경하면 안 되는 고급 속성입니다.