Utilização de Memória

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

O monitor indica um aviso quando as alocações de memória pela instância do SSAS supera o WarningThreshold configurado, expresso como um porcentual do TotalMemoryLimit definido para a instância do SSAS. O monitor emite um alerta crítico quando essas alocações superam o CriticalThreshold configurado.

Knowledge Base article:

Resumo

O monitor indica um aviso quando as alocações de memória pela instância do SSAS supera o WarningThreshold configurado, expresso como um porcentual do TotalMemoryLimit definido para a instância do SSAS. O monitor emite um alerta crítico quando essas alocações superam o CriticalThreshold configurado.

Causas

O SSAS pode abordar ou exceder o TotalMemoryLimit definido em algumas circunstâncias. Em alguns casos, uma única operação exige memória além desse limite e, apesar do melhor esforço do servidor para limpar memória de outras tarefas menos imediatas, as alocações podem algumas vezes necessariamente exceder os limites configurados ou as operações serão forçadas a falhar.

Isso pode ocorrer ao processar grandes dimensões ou dados de fato, particularmente se há atributos com tipos de dados consumindo grandes quantidades de espaço (por exemplo, cadeias de caracteres longas, dados binários, etc.) ou se a dimensão contém vários membros. Além disso, as consultas executadas no servidor podem cobrir espaços muito grandes, particularmente se várias dimensões estão sendo cruzadas ou cálculos significantes são necessários para derivar resultados para células não agregadas anteriormente por um administrador inteligente ou simplesmente não é possível agregar antecipadamente.

Resoluções

Quando os limites de memória para um servidor são excedidos, há várias abordagens que os administradores podem usar para resolver o problema. Depois de considerar a atividade subjacente causando utilização de memória, os requisitos para a carga de trabalho no servidor, os recursos disponíveis e outros fatores, assim como a total revisão e consideração do Guia de Desempenho Multidimensional do SSAS ou consultoria com o suporte da Microsoft, conforme necessário, qualquer uma das seguintes abordagens pode ser usada para abordar o problema:

Externo

Documentação TechNet para as propriedades de memória do Analysis Services

Configurar Propriedades do Servidor no Analysis Services

Guia de Desempenho Multidimensional do SSAS

Parâmetros Substituíveis

Nome

Descrição

Valor padrão

Limite Crítico (%)

O Estado da Integridade muda para Crítico quando a utilização da memória do Analysis Services (%) excede o limite.

95

Habilitado

Habilita ou desabilita o fluxo de trabalho

True

Gerar Alertas

Define se o fluxo de trabalho gera um Alerta

True

Intervalo em Segundos

O intervalo de tempo recorrente em segundos no qual executa-se o fluxo de trabalho.

900

Hora da Sincronização

A hora da sincronização especificada usando um formato de 24 horas. Pode ser omitido.

4

Limite de Aviso (%)

O Estado da Integridade muda para Aviso quando a utilização da memória do Analysis Services (%) excede o limite, mas ainda estiver menor do que o Limite Crítico (%).

 

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: Utilização de Memória Alta
A utilização de memória atual para o SSAS ({3} GB) supera o limite configurado, expresso como um porcentual do TotalMemoryLimit definido para a instância.
Memória total no servidor: {2} GB
Utilização total da memória: {5} GB
Memória utilizada por processos não-SSAS: {4} GB
Memória utilizada pelo SSAS: {3} GB
Limite de memória SSAS baixo: {6} GB ({7}\%)
Limite de memória SSAS alto: {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/>
</Configuration>
</UnitMonitor>