В этом разделе описываются некоторые счетчики Performance Monitor, связанные с мониторингом центрального процессора:
♦ % Processor Time (% загруженности процессора), здесь Object (Объект) - Processor (Процессор);
♦ % Interrupt Time (% времени прерываний), здесь Object - Processor;
♦ Interrupts/sec (Прерываний/сек.), здесь Object - Processor;
♦ Processor Queue Length (Длина очереди процессора), здесь Object - System (Система).
В этом разделе также описывается одна системная процедура и два представления, связанные с мониторингом центрального процессора:
♦ sp_monitor;
♦ sys.sysprocesses;
♦ sys.dm_exec_requests.
Счетчик % Processor Time отображает использование процессора в масштабах всей системы и выступает в роли первичного индикатора активности процессора. Значение этого счетчика должно находиться между 80 и 90. Вы должны стремиться сократить использование центрального процессора, если значение этого счетчика постоянно превышает 90. (Использование CPU в 100% допустимо лишь в том случае, если это происходит в короткий промежуток времени.)
Счетчик % Interrupt Time показывает процент времени, которое CPU тратит на обслуживание прерываний оборудования. Значение этого счетчика является важным, если хотя бы один элемент оборудования пытается получить процессорное время. Если только один элемент оборудования вызывает проблемы, то решением может быть обновление такого элемента.
Счетчик Interrupts/sec отображает, сколько раз в секунду процессор получает прерывания от оборудования для обслуживания запросов от периферийных устройств. Это число обычно может быть большим в окружении с высоким использованием дисков или большим количеством сетевых запросов.
Счетчик Processor Queue Length указывает, как много потоков ожидает выполнения. Если этот счетчик все время превышает 5 в случае, когда использование процессора приближается к 100%, то это означает, что активных потоков реально существует больше, чем машинные процессоры в состоянии обработать.
Системная процедура spmonitor отображает статистические данные, например, количество секунд, при которых CPU осуществлял работу системы, количество секунд, в течение которых система находилась в состоянии ожидания, количество операций ввода/вывода и количество соединений (или попыток соединения) с системой.
Представление каталога sys.sysprocesses может быть полезным, если вы хотите идентифицировать процесс, который больше всего использует процессорное время. Это представление содержит информацию о процессах, которые выполняются в экземпляре. Эти процессы могут быть клиентскими процессами или системными процессами. Представление принадлежит системной базе данных master. По этой причине для доступа к представлению вы должны использовать имя, состоящее из трех частей (master.dbo.sysprocesses). Наиболее важными столбцами этого представления являются spid (идентификатор сессии), dbid (идентификатор текущей базы данных), uid (идентификатор пользователя, который выполняет текущую команду) и сри (накапливаемое для процесса время CPU).
Представление sys.dm_exec_requests предоставляет ту же информацию, что и представление каталога sys.sysprocesses, однако имена соответствующих столбцов отличаются. В примере 21.1 показано использование этих динамических представлений управления. Имена столбцов объясняют свое назначение.
Столбец sqlhandie в представлении указывает на область, где сохраняется весь пакет. Если вы хотите уменьшить информацию до одного только оператора, вы должны использовать столбцы statement_start_offset и statement_ endof fset для сокращения результата.