Utilização de Memória

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

O monitor relata um aviso quando as alocações de memória pela instância do SSAS superam o Limite de Aviso configurado, expresso como um percentual da configuração Limite de Memória Total para a instância do SSAS. O monitor emite um alerta crítico quando essas alocações superam o Limite Crítico configurado.

Knowledge Base article:

Resumo

O monitor relata um aviso quando as alocações de memória pela instância do SSAS superam o Limite de Aviso configurado, expresso como um percentual da configuração Limite de Memória Total para a instância do SSAS. O monitor emite um alerta crítico quando essas alocações superam o Limite Crítico configurado.

Causas

O SSAS pode abordar ou exceder a configuração Limite de Memória Total 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 poderá ocorrer ao processar grandes dimensões ou dados de fato, particularmente se houver 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 contiver vários membros. Além disso, as consultas executadas no servidor poderão cobrir espaços muito grandes, particularmente se várias dimensões estiverem sendo cruzadas ou cálculos significantes forem necessários para derivar resultados para células não agregadas anteriormente por um administrador inteligente, ou se simplesmente não for 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 o uso de memória, os requisitos para a carga de trabalho no servidor, os recursos disponíveis e outros fatores, além de revisar e considerar plenamente o Guia de desempenho multidimensional do SSAS ou consultar o suporte da Microsoft, conforme necessário, qualquer uma das seguintes abordagens pode ser usada para solucionar 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 de Integridade mudará para Crítico quando o uso de memória do Analysis Services (%) exceder o limite.

95

Habilitado

Habilita ou desabilita o fluxo de trabalho

Sim

Gerar Alertas

Define se o fluxo de trabalho gera um Alerta

Sim

Intervalo em Segundos

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

900

Número de amostras

O Estado da Integridade muda se o número de violações do limite for maior ou igual ao Número Mínimo de Violações.

4

Hora da Sincronização

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

 

Tempo limite (segundos)

Especifica o tempo que o fluxo de trabalho pode funcionar antes de ser fechado e marcado como com falha.

300

Limite de aviso (%)

O Estado de Integridade mudará para Aviso quando Uso de Memória do Analysis Services (%) exceder o limite, mas ainda for menor que o Limite Crítico (%).

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: 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 percentual da configuração Limite Total de Memória para a instância.
Memória total no servidor: {2} GB
Uso total de 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/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>