Как определить нагрузку на CPU? sys.dm_os_schedulers (Transact-SQL)

sys.dm_os_schedulers (Transact-SQL) Другие версии   THIS TOPIC APPLIES TO:SQL Server (starting with 2008)Azure SQL DatabaseAzure SQL Data Warehouse Parallel Data Warehouse Возвращает по одной строке для каждого планировщика SQL Server, сопоставленного с отдельным процессором. Используйте это представление для мониторинга состояния планировщика или для определения отклонившихся от расписания задач.

Источник: sys.dm_os_schedulers (Transact-SQL)

 

Есть традиционные счетчики производительности- но они есть в 2008 версии. В 2005 понять (хотя бы приблизительно) какова текущая нагрузка на процессор сложно.

 

Очень простой метод выявления таковой нагрузки- использования запроса к шедулерам. Сколько именно процессоров в текущий момент занято?

 

;with

not_idle as (select COUNT(*) AS not_idle FROM   sys.dm_os_schedulers WHERE scheduler_id<255 AND is_online=1 ANDis_idle=0),

idle as (select COUNT(*) AS idle FROM   sys.dm_os_schedulers WHERE scheduler_id<255 AND is_online=1 /*AND is_idle=1*/)

SELECT 100.*not_idle/(idle/*+not_idle*/) FROM idle,not_idle

 

То есть, соотношение занятых и незанятых процессорных ядер. На практике скрипт не очень точен и зачастую занижает величину нагрузки. Но некоторые приблизительные оценки делать позволяет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *