메모리 사용량

Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.MemoryUsage (UnitMonitor)

SSAS 인스턴스별 메모리 할당이 SSAS 인스턴스의 전체 메모리 한도 설정 비율로 표현되는, 구성된 경고 임계값을 초과할 경우 모니터가 경고를 보고합니다. 할당이 구성된 위험 임계값을 초과할 경우 모니터가 중요한 알림을 발급합니다.

Knowledge Base article:

요약

SSAS 인스턴스별 메모리 할당이 SSAS 인스턴스의 전체 메모리 한도 설정 비율로 표현되는, 구성된 경고 임계값을 초과할 경우 모니터가 경고를 보고합니다. 할당이 구성된 위험 임계값을 초과할 경우 모니터가 중요한 알림을 발급합니다.

원인

일부 상황에서는 SSAS가 전체 메모리 한도 설정에 근접하거나 초과할 수 있습니다. 일부 경우에는 하나의 작업에 이러한 한도를 넘는 메모리가 필요하며 긴급하지 않은 다른 태스크의 메모리를 지우기 위해 서버가 최선을 다함에도 불구하고 할당이 구성된 한도를 초과하거나 강제로 작업이 수행되지 않도록 해야 할 수 있습니다.

큰 차원 또는 팩트 데이터를 처리하는 경우 특히, 긴 문자열, 이진 데이터 등과 같이 많은 공간을 사용하는 데이터 형식의 특성이 있거나 차원에 여러 멤버가 포함되어 있는 경우에 발생할 수 있습니다. 또한 여러 차원이 크로스 조인되어 있는 경우 또는 현명한 관리자가 이전에 집계하지 않았거나 간단히 미리 집계할 수 없는 셀의 결과를 도출하기 위해 중요한 계산이 필요한 경우 서버에서 실행되는 쿼리가 매우 많은 공간을 사용할 수 있습니다.

해결 방법

서버의 메모리 한도를 초과하는 경우 관리자가 문제를 수정하는 데 사용할 수 있는 접근 방식은 여러 가지가 있습니다. 메모리 사용을 발생시킨 기본 작업, 서버의 작업 요구 사항, 사용 가능한 리소스 및 다른 요인을 고려하고 SSAS 다차원 성능 가이드도 철저하게 검토하고 고려하며 필요에 따라 Microsoft 지원에 문의한 후 다음 접근 방식 중 하나를 사용하여 문제를 해결할 수 있습니다.

외부 리소스

Analysis Services 메모리 속성 TechNet 설명서

Analysis Services 서버 속성 구성

SSAS 다차원 성능 가이드

재정의 가능한 매개 변수

이름

설명

기본값

위험 임계값(%)

Analysis Services 메모리 사용량(%)이 임계값을 초과하는 경우 상태가 위험으로 변경됩니다.

95

사용

워크플로를 사용하거나 사용하지 않도록 설정합니다.

알림 생성

워크플로의 알림 생성 여부 정의

간격(초)

워크플로를 실행하는 반복 시간 간격(초)입니다.

900

샘플 수

임계값 위반 수가 최소 위반 수 이상인 경우 상태가 변경됩니다.

4

동기화 시간

24시간 형식으로 지정된 동기화 시간입니다. 생략될 수 있습니다.

 

시간 제한(초)

워크플로를 닫고 실패로 표시하기 전에 워크플로를 실행할 수 있는 시간을 지정합니다.

300

경고 임계값(%)

Analysis Services 메모리 사용량(%)이 임계값을 초과했으나 위험 임계값(%)보다는 낮은 경우 상태가 경고로 변경됩니다.

80

Element properties:

TargetMicrosoft.SQLServer.2008.AnalysisServices.Instance
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.MemoryUsagePercent
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2008: 높은 메모리 사용률
SSAS({3}GB)의 현재 메모리 사용률이 인스턴스의 전체 메모리 한도 설정 비율로 표현되는, 구성된 임계값을 초과합니다.
서버의 전체 메모리: {2}GB
전체 메모리 사용량: {5}GB
SSAS 이외의 프로세스에서 사용 중인 메모리: {4}GB
SSAS에서 사용 중인 메모리: {3}GB
SSAS 메모리 하한: {6}GB({7}\%)
SSAS 메모리 상한: {0}GB({8}\%)
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.MemoryUsage" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.MemoryUsagePercent" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.MemoryUsage.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='MemoryLimitHighGB']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='MemoryLeavesForOsGB']$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='TotalPhysicalMemoryGB']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='MemoryUsageGB']$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='MemoryUsageByOtherProcessGB']$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='UsedPhysicalMemoryGB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='MemoryLimitLowGB']$</AlertParameter7>
<AlertParameter8>$Data/Context/Property[@Name='MemoryLimitLowPercent']$</AlertParameter8>
<AlertParameter9>$Data/Context/Property[@Name='MemoryLimitHighPercent']$</AlertParameter9>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Above" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Between" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Below" HealthState="Success"/>
</OperationalStates>
<Configuration>
<WarningThreshold>80</WarningThreshold>
<CriticalThreshold>95</CriticalThreshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>