O monitor alertará quando o tamanho da fila de trabalho de E/S do pool de processamento para a instância do SSAS for maior do que o limite configurado.
O monitor alertará quando o tamanho da fila de trabalho de E/S do pool de processamento exceder o limite configurado. Colocar em fila pode indicar que algumas solicitações não podem ser executadas devido à espera por um thread livre do pool, mesmo que os trabalhos sejam executados e retornados rapidamente. O enfileiramento do pool de trabalho de E/S indica que existe um estrangulamento de E/S no servidor.
O esgotamento dos threads disponíveis do pool de processamento pode ocorrer por vários motivos, incluindo a definição incorreta das configurações do servidor afetando o pool ou a demanda anormalmente alta de usuários ou trabalhos agendados na instância. Os threads para executar as consultas do usuário, assim como os trabalhos de processamento, são alocados do pool de processamento; assim, uma carga de trabalho pesada pode adicionar estresse, levando a essa condição.
Resolver esse alerta exige que os administradores compreendam e considerem vários fatores, incluindo mas não se limitando, a requisitos da carga de trabalho, programações do usuário e de trabalho, outros processos agendados no computador servidor e os recursos disponíveis. As ações para solucionar a condição quando o tamanho da fila de trabalho de E/S do pool de processamento excede o limite configurado podem incluir várias das seguintes ações:
Modifique as definições da configuração do pool depois de consultar o Guia de Desempenho Multidimensional do SSAS para aumentar os threads disponíveis no pool de processamento. Isso não é aconselhável sem uma consideração muito cuidadosa e teste ou consultoria do Suporte da Microsoft.
Diminua a carga de trabalho na instância do SSAS ao reagendar trabalhos, modificar o design do banco de dados, restringir as consultas do usuário ou dividir a carga de trabalho para mover alguns trabalhos para outros servidores.
Aumente o número de threads disponíveis no pool aumentando o número de núcleos disponíveis no servidor, que aumenta dinamicamente o tamanho do pool.
Melhore o desempenho de E/S no servidor ao melhorar as especificações de E/S (unidade ou possível rede) ou reconfigura a carga de trabalho para dividir entre os vários dispositivos.
Ajuste os limites configurados para o alerta para evitar a condição.
Desabilite totalmente o monitor se a fila do trabalho de E/S do pool de processamento não for uma preocupação no servidor.
Configurar propriedades do servidor no Analysis Services
Documentação TechNet para os Contadores de Desempenho do SSAS
Guia de Desempenho Multidimensional do SSAS
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. | 900 |
Número de amostras | O Estado da Integridade mudará se o número de violações do limite for 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 de Aviso | O Estado de Integridade mudará se o contador de desempenho do Analysis Services exceder o limite. | 0 |
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.2016.AnalysisServices.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.2016.AnalysisServices.MonitorType.Instance.CommonPerformanceData | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.Instance.ProcessingPoolIOJobQueueLength" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Instance" TypeID="Microsoft.SQLServer.2016.AnalysisServices.MonitorType.Instance.CommonPerformanceData" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.Instance.ProcessingPoolIOJobQueueLength.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Data/Context/Value$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<PerformanceCounterName>Processing pool I/O job queue length</PerformanceCounterName>
<CounterName>Processing pool I/O job queue length</CounterName>
<Threshold>0</Threshold>
<SampleCount>4</SampleCount>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>