Consumo de Memória do Pool de Recursos

Microsoft.SQLServer.Windows.Monitor.UserResourcePool.MemoryConsumption (UnitMonitor)

O monitor relatará um estado crítico e emitirá um alerta quando a quantidade de memória usada pelo pool de recursos for maior do que a configuração de Limite, expresso como percentual de memória disponível para tabelas de dados com otimização de memória para o pool de recursos fornecido.

Knowledge Base article:

Resumo

O monitor relatará um estado crítico e emitirá um alerta quando a quantidade de memória usada pelo pool de recursos for maior do que a configuração de Limite, expresso como percentual de memória disponível para tabelas de dados com otimização de memória para o pool de recursos fornecido.

O pool de recursos nomeado, quando mapeado para um banco de dados com otimização de memória, acompanha memória alocada para todas as tabelas com otimização de memória, incluindo tabelas internas que são usadas para diversas estruturas dentro do mecanismo de dados com otimização de memória.

Causas

O SQL Server com dados com otimização de memória usa mais memória e de formas diferentes do que o SQL Server. É possível que a quantidade de memória instalada e alocada para os dados com otimização de memória se torne inadequada para suas necessidades de crescimento. Se acontecer, você poderá ficar sem memória.

Consulte esse artigo para obter mais detalhes: Associar um banco de dados com tabelas com otimização de memória a um pool de recursos.

Resoluções

Para resolver sua condição de Memória Baixa ou Sem Memória, você precisa para liberar a memória existente reduzindo a utilização ou tornar mais memória disponível nas suas tabelas de dados com otimização de memória. Possíveis ações corretivas podem incluir:

Externo

Como gerenciar sua memória para dados com otimização de memória

Parâmetros Substituíveis

Nome

Descrição

Valor Padrão

Prioridade do Alerta

Define a Prioridade do Alerta.

Normal

Severidade do Alerta

Define a Severidade do Alerta.

Erro

Habilitado

Habilita ou desabilita o fluxo de trabalho.

Sim

Gera Alertas

Define se o fluxo de trabalho gera ou não um Alerta.

Sim

Intervalo (segundos)

O intervalo de tempo recorrente em segundos no qual executar o fluxo de trabalho.

900

Número de amostras

Indica quantas vezes um valor medido deve romper um limite antes que o estado seja alterado.

6

Tempo de Sincronização

O tempo de sincronização especificado usando um formato de 24 horas. Pode ser omitido.

 

Limite

O valor coletado será comparado com esse parâmetro.

90

Tempo Limite (em segundos)

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

300

Tempo limite da conexão de banco de dados (segundos)

O fluxo de trabalho falhará e registrará um evento, se ele não conseguir acessar o banco de dados durante o período especificado.

15

Element properties:

TargetMicrosoft.SQLServer.Windows.UserResourcePool
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Windows.MonitorType.UserResourcePool.MemoryConsumption
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL no Windows: dados com otimização de memória: o pool de recursos está usando memória demais.
O Pool de Recursos "{0}" está usando muita memória.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.UserResourcePool.MemoryConsumption" Target="SqlDiscW!Microsoft.SQLServer.Windows.UserResourcePool" ParentMonitorID="Health!System.Health.PerformanceState" TypeID="Microsoft.SQLServer.Windows.MonitorType.UserResourcePool.MemoryConsumption" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.UserResourcePool.MemoryConsumption.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.ResourcePool"]/Name$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ErrorState" MonitorTypeStateID="ErrorState" HealthState="Error"/>
<OperationalState ID="SuccessState" MonitorTypeStateID="SuccessState" HealthState="Success"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Host/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<Threshold>90</Threshold>
<NumSamples>6</NumSamples>
<PoolName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.ResourcePool"]/Name$</PoolName>
</Configuration>
</UnitMonitor>