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.
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.
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.
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:
Identificar a(s) sessão(ões) responsável(eis) para as alocações de memória mais significativas e encerrá-las manualmente.
Identifique as sessões responsáveis pelas alocações de memória mais significativas e as resolva caso a caso para reagendar trabalhos de processamento ou relatórios, pré-alocar com consultas de aquecimento de cache durante momentos de baixa utilização ou criando agregações específicas antecipadamente, para serem criadas durante o processamento e, portanto, reduzir subsequentemente o consumo de memória por consultas do usuário.
Aumentar a memória física no computador de hospedagem.
Diminua o uso de memória por outros processos no computador host, como o mecanismo do banco de dados relacional do SQL Server ou outras instâncias do SSAS.
Aumente o Limite de Memória Total ou os limites configurados para o alerta para evitar a condição.
Desabilite totalmente o monitor se o uso de memória não for um problema no servidor.
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
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 |
Target | Microsoft.SQLServer.2008.AnalysisServices.Instance | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.MemoryUsagePercent | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>