O monitor alerta quando o TotalMemoryLimit configurado para a instância do SSAS excede o limite configurado, arriscando a alocação de memória física necessária para o sistema operacional realizar as funções básicas necessárias, pelo menos 2 GB.
O monitor alerta quando o TotalMemoryLimit configurado para a instância do SSAS excede o limite configurado, arriscando a alocação de memória física necessária para o sistema operacional realizar as funções básicas necessárias. Além disso, a configuração não é responsável por possíveis consumos de memória de processos diferentes da instância monitorada específica, que também pode ser considerada por um administrador ao ajustar as configurações de TotalMemoryLimit depois de revisar totalmente o Guia de Desempenho Multidimensional do SSAS.
O TotalMemoryLimit deve permitir no mínimo espaço suficiente para o sistema operacional realizar as funções básicas necessárias do gerenciamento de memória e interação entre unidade e hardware. Se o sistema operacional tem memória insuficiente disponível para essas funções fundamentais, pode ocorrer instabilidade e falha do sistema. Portanto, a configuração deve ser definida um pouco abaixo de 100% para garantir que essas funções tenham memória física suficiente disponível. Se estiver definido para muito alta, esse monitor alertará sobre a condição.
A configuração padrão para o SSAS é 80 para o TotalMemoryLimit, representando 80% da memória física disponível no servidor. Se outros grandes consumidores de memória (por exemplo, o mecanismo do banco de dados relacional do SQL Server) estão presentes, isso deve ser considerado e as configurações de limite de memória diminuídas adequadamente. Se o número for elevado demais, o sistema operacional pode executar baixo na memória física e pode resultar em altas quantidades de paginação de disco, levando a desempenho ineficiente no servidor.
Se um número específico de bytes for necessário, qualquer valor maior que 100 é interpretado como um número de bytes da memória física.
Observação: diferente do mecanismo do banco de dados relacional do SQL Server, que suporta uma limitação de memória máxima rígida, o TotalMemoryLimit do mecanismo do SSAS trabalha levemente diferente. O TotalMemoryLimit é o limite no qual o servidor começará a tentar agressivamente a limpar a memória o mais rapidamente possível. Diferentemente, o LowMemoryLimit é o limite no qual o servidor começará a tentar limpar a memória do cache do SSAS “preguiçosamente”, tentando reduzir o impacto em qualquer sessão ou consulta existente já em andamento. Quando o TotalMemoryLimit for atingido, o desempenho do servidor pode ser impactado, porque o servidor estará limpando muito agressivamente a memória do cache. O servidor também suporta uma definição HardMemoryLimit – um ponto onde o servidor começará arbitrariamente a encerrar sessões para tentar liberar memória. Isso possivelmente causará falhas para alguns usuários e é por isso que o TotalMemoryLimit não é forçado como um limite rígido, porque algumas consultas ou trabalhos podem por natureza apenas consumir muita memória e o mecanismo OLAP fará o melhor para servi-lo dentro dos limites configurados.
Essa condição pode ser resolvida por uma das ações a seguir:
Diminua o TotalMemoryLimit abaixo do limite configurado.
Adicione memória física ao servidor para reduzir a definição TotalMemoryLimit quando expresso como um porcentual da memória física total disponível, abaixo do limite, expresso em GB.
Diminua o limite configurado para evitar o alerta.
Desabilite totalmente o monitor se a utilização de memória não for um problema no servidor.
Configuração de memória e considerações de dimensionamento no SQL Server 2008
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 |
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. | 604800 |
Hora da Sincronização | A hora da sincronização especificada usando um formato de 24 horas. Pode ser omitido. |
|
Limite de Aviso (GB) | O monitor alerta quando o TotalMemoryLimit configurado para a instância do SSAS excede o limite configurado, arriscando a alocação de memória física necessária para o sistema operacional realizar as funções básicas necessárias, pelo menos 2 GB. | 2 |
Target | Microsoft.SQLServer.2008.AnalysisServices.Instance | ||
Parent Monitor | System.Health.ConfigurationState | ||
Category | ConfigurationHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.TotalMemoryConfiguration | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.TotalMemoryConfiguration" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.TotalMemoryConfiguration" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.TotalMemoryConfiguration.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</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="Warning" MonitorTypeStateID="NotConfigured" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Configured" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Threshold>2</Threshold>
<IntervalSeconds>604800</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>