Conflito de Configuração da Memória com o SQL Server

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

O monitor alerta se há um processo do mecanismo do banco de dados relacional do SQL Server em funcionamento no servidor e se a configuração TotalMemoryLimit para a instância do SSAS for maior do que o limite especificado para garantir que o processo do SQL Server tenha memória suficiente.

Knowledge Base article:

Resumo

O ajuste da configuração TotalMemoryLimit do SQL Server Analysis Services deve ser definido de acordo com acomodar as alocações de memória para outros processos no computador.

Causas

O mecanismo do banco de dados relacional do SQL Server em particular é o principal exemplo de um processo comum que pode consumir recursos de memória em um computador que também está executando o SSAS e, nessa circunstância, pode levar à concorrência de memória física por consumidores pesados do mesmo recurso corrigido. Isso exige que ambos os serviços do banco de dados estejam configurados para permitir memória física suficiente um ao outro para cada um realizar suas funções necessárias. Se a configuração TotalMemoryLimit do SSAS estiver muito alta, o SSAS pode consumir muita memória, levando ao esgotamento da memória física devido à competição com o mecanismo do banco de dados relacional (ou também com outro processo de alto consumo de memória). O TotalMemoryLimit deve ser configurado baixo o suficiente para permitir o consumo de memória configurado do SQL Server, além de uma margem para o sistema operacional e outro consumo de memória do processo comum necessário no computador.

Resoluções

Quando ocorre conflito de configuração de memória, recursos e demandas dos usuários e outros processos devem ser ponderados por um administrador e a configuração de todos os processos relevantes deve ser ajustada adequadamente. O cenário mais comum para esse tipo de problema em um servidor do banco de dados da Microsoft surgido da(s) instância(s) do SSAS do mecanismo do banco de dados relacional do SQL Server. Felizmente, ambos os serviços têm definições de configuração que podem ser ajustados conforme necessário. Não há uma configuração TotalMemoryLimit universalmente correta para o SSAS ou configuração de limite máximo de memória para o mecanismo do banco de dados relacional do SQL, portanto, o limite para esse alerta pode ser ajustado por um administrador para a conta de cada ambiente específico. Quando for encontrada, a condição pode ser atenuada por qualquer uma das várias possíveis abordagens:

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

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 (%)

O Estado da Integridade muda se há um processo do mecanismo do banco de dados relacional do SQL Server em funcionamento no servidor e se a configuração TotalMemoryLimit definida para a instância do SSAS excede o limite.

40

Element properties:

TargetMicrosoft.SQLServer.2008.AnalysisServices.Instance
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.ConfigurationConflictWithSQLServer
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2008: Conflito de configuração da memória com o SQL Server
A definição da configuração TotalMemoryLimit da instância do SQL Server Analysis Services ({0} GB) deixa {1} GB de {2} GB para o sistema operacional e o SQL Server, que está abaixo do limite configurado para o alerta.
Memória total no servidor: {2} GB
Uso total da memória: {5} GB
Memória usada pelos processos não-SSAS: {4} GB
Memória usada pelo SSAS: {3} GB
Limite de memória do SSAS baixo: {6} GB ({7}\%)
Limite de memória do SSAS alto: {0} GB ({8}\%)
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ConfigurationConflictWithSQLServer" 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.ConfigurationConflictWithSQLServer" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ConfigurationConflictWithSQLServer.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="ConfigurationConflict" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="NoConfigurationConflict" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Threshold>40</Threshold>
<IntervalSeconds>604800</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>