Монитор создает предупреждение, если длина очереди заданий ввода-вывода для пула обработки экземпляра SSAS превышает заданное пороговое значение.
Монитор создает предупреждение, когда размер очереди заданий ввода-вывода для пула обработки превышает заданное пороговое значение. Помещение в очередь может означать, что некоторые запросы могут не выполняться из-за ожидания свободного потока из пула, даже если сами задания быстро выполняются и возвращают управление. Наличие очереди заданий ввода-вывода в пуле обработки говорит о проблемах с производительностью ввода-вывода на сервере.
Исчерпание доступных потоков пула обработки может возникнуть по ряду причин, включая неправильную настройку сервера, влияющую на пул, или слишком большое количество обращений со стороны пользователей или запланированных заданий экземпляра. Потоки для выполнения пользовательских запросов и задания для обработки распределяются из пула обработки, поэтому высокая рабочая нагрузка может привести к этому состоянию.
При разрешении этого предупреждения администраторам требуется понимать и учитывать множество факторов, в том числе требования к рабочей нагрузке, сведения о пользователях и расписание заданий, другие запланированные процессы на компьютере сервера и доступные ресурсы. Для устранения состояния, при котором размер очереди заданий ввода-вывода для пула обработки превышает заданное пороговое значение, может потребоваться любое из перечисленных ниже действий:
Измените параметры конфигурации пула после изучения руководства по настройке производительности многомерных служб SSAS, чтобы увеличить количество доступных потоков в пуле обработки. Делайте это только после тщательного анализа и тестирования или после консультирования со службой поддержки корпорации Майкрософт.
Уменьшите нагрузку на экземпляр SSAS путем переноса заданий на другое время, изменения структуры базы данных, ограничения пользовательских запросов или переноса части рабочей нагрузки на другие серверы.
Увеличение количество доступных потоков в пуле, увеличивая количество доступных ядер на сервере, который динамически повышает размер пула.
Повысить производительность ввода-вывода на сервере можно за счет улучшения характеристик систем ввода-вывода (дисковой или, возможно, сетевого окружения) или разделением нагрузки между несколькими устройствами.
Настройте пороговые значения для оповещения, чтобы избежать этого состояния.
Полностью отключите монитор, если очередь заданий ввода-вывода пула обработки не имеет значения для сервера.
Настройка свойств сервера для служб Analysis Services
Документация TechNet по счетчикам производительности SSAS
Руководство по настройке производительности многомерных служб SSAS
Название | Описание | Значение по умолчанию |
Включено | Включает или отключает поток процесса | Да |
Создает предупреждения | Определяет, создает ли рабочий процесс предупреждения | Да |
Интервал (в секундах) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 900 |
Число выборок | Состояние работоспособности изменяется, если количество нарушений порогового значения больше или равно минимальному количеству нарушений. | 4 |
Время синхронизации | Время синхронизации указывается в 24-часовом формате и может быть опущено. |
|
Пороговое значение предупреждения | Состояние работоспособности изменяется, если значение счетчика производительности служб Analysis Services превышает пороговое значение. | 0 |
Время ожидания (секунды) | Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный. | 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>