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

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

O monitor alertará se houver um processo do mecanismo do banco de dados relacional do SQL Server em funcionamento no servidor e se a configuração Limite de Memória Total 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 Limite de Memória Total do SQL Server Analysis Services deve ser realizado de modo a 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 de banco de dados estejam configurados para compartilhar memória física suficiente entre si para que cada um realize suas funções necessárias. Se a configuração Limite de Memória Total do SSAS estiver muito alta, o SSAS poderá 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 Limite de Memória Total 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 pelo 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 de banco de dados da Microsoft surgido das instâncias do SSAS do mecanismo do banco de dados relacional do SQL Server. Felizmente, ambos os serviços têm definições de configuração de recursos que podem ser ajustados conforme necessário. Não há uma configuração Limite de Memória Total 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

Configuração de memória e considerações de dimensionamento no SQL Server 2014

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

Configurar propriedades do servidor no Analysis Services

Documentação TechNet para os Contadores de Desempenho do SSAS

Guia de Desempenho Multidimensional do SSAS

Parâmetros Substituíveis

Nome

Descrição

Valor padrão

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.

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 mudará se houver um processo do mecanismo do banco de dados relacional do SQL Server em execução no servidor e se a configuração Limite de Memória Total definida para a instância do SSAS exceder o limite.

40

Tempo limite (segundos)

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

300

Element properties:

TargetMicrosoft.SQLServer.2014.AnalysisServices.Instance
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.AnalysisServices.MonitorType.Instance.ConfigurationConflictWithSQLServer
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2014: Conflito de configuração da memória com o SQL Server
A definição da configuração Limite de Memória Total 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 de 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.2014.AnalysisServices.UnitMonitor.Instance.ConfigurationConflictWithSQLServer" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2014.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.AnalysisServices.MonitorType.Instance.ConfigurationConflictWithSQLServer" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.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/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>