O monitoramento alerta quando a memória consumida por outros processos além do SSRS não permite que o SSRS aloque a quantidade de memória prescrita pela configuração de WorkingSetMinimum. O monitoramento usa a seguinte fórmula para determinar o estado:
({WorkingSetMinimum} + {Memória Consumida Por Outros})*100/{Total de Memória} < {Limite (\%)}
O monitoramento alerta quando a memória consumida por outros processos além do SSRS não permite que o SSRS aloque a quantidade de memória prescrita pela configuração de WorkingSetMinimum. O monitoramento usa a seguinte fórmula para determinar o estado:
({WorkingSetMinimum} + {Memória Consumida por Outros})*100/{Memória Total} < {Limite (%)}
O Reporting services pode precisar de muita memória por vários motivos, incluindo:
Carga alta – muitas solicitações sob demanda ou de assinaturas sendo atendidas pelo servidor de relatório
Solicitações de relatórios complexos e de relatórios que exibem muitos dados
Poderão ocorrer condições de pressão de memória se houver outros aplicativos em execução no mesmo servidor consumindo memória.
Você pode considerar adicionar mais memória ao servidor ou remover outros aplicativos do servidor.
O artigo a seguir fornece as informações correspondentes sobre configuração de memória para o reporting services -
Configurar memória disponível para aplicativos do Servidor de Relatórios
Configurando Propriedades do Servidor no Reporting Services: Configurar propriedades de servidor
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 (segundos) | O intervalo de tempo recorrente em segundos no qual executa-se o fluxo de trabalho. | 900 |
Número de amostras | O Estados de Integridade é alterado quando o número de violações de limite é 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. |
|
Limite | O monitoramento alerta quando a soma da memória consumida por outros processos além do SSRS e o valor de WorkingSetMinimum, expressos como um percentual da memória total do servidor, excede o limite. | 100 |
Tempo limite (segundos) | Especifica o tempo que o fluxo de trabalho pode funcionar antes de ser fechado e marcado como com falha. | 300 |
Target | Microsoft.SQLServer.2014.ReportingServices.Instance | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2014.ReportingServices.MonitorType.Instance.MemoryUsageOnServer | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2014.ReportingServices.UnitMonitor.Instance.MemoryUsageOnServer" Accessibility="Public" Enabled="true" Target="SQLRS!Microsoft.SQLServer.2014.ReportingServices.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.ReportingServices.MonitorType.Instance.MemoryUsageOnServer" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.ReportingServices.UnitMonitor.Instance.MemoryUsageOnServer.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='TotalPhysicalMemoryGB']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='WorkingSetMinimumGB']$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='WorkingSetMaximumGB']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='MemoryUsageGB']$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='MemoryUsagePercent']$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='MemoryUsageByOtherProcessGB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='MemoryUsageByOtherProcessPercent']$</AlertParameter7>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Threshold>100</Threshold>
<SampleCount>4</SampleCount>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>