Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 CPU % для инстанса  [new]
sql cpu
Guest
Вопрос, как можно для мониторинга вывести %CPU для каждого MSSQL инстанса? Через Performance Monitor не нашел такой метрики. Варианты через Task Manager громоздкие, нужно цепляться за sqlserv-процесс, PID у них меняются после перезапуска?
15 сен 16, 17:42    [19670172]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
можно тут покопаться sys.dm_os_performance_counters
15 сен 16, 18:46    [19670386]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
Eleanor
Member

Откуда:
Сообщений: 3425
В Performance Monitor всё то же самое, что в Task Manager:
\Process\% Processor Time - для sqlserver#1, sqlserver#2
\Process\ID Process - чтобы понять, какому PID соответствуют идентификаторы #1, #2.

Если происходит перезапуск одного из инстансов Sql Server, то PID меняется, а идентификатор # будет тот же (т.к. берет минимальный еще не занятый идентификатор).
15 сен 16, 22:48    [19671027]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
SELECT
    cpu_sql = (
            MAX(CASE WHEN counter_name = 'CPU usage %' THEN t.cntr_value * 1. END) /
            MAX(CASE WHEN counter_name = 'CPU usage % base' THEN t.cntr_value END)
        ) * 100
FROM (
    SELECT TOP(2) cntr_value, counter_name
    FROM sys.dm_os_performance_counters
    WHERE counter_name IN ('CPU usage %', 'CPU usage % base')
        AND instance_name = 'default'
) t
16 сен 16, 09:38    [19671744]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
Eleanor
Member

Откуда:
Сообщений: 3425
AlanDenton,

Эти счетчики работают только там где доступен Resource Governor, т.е. на Enterprise. На других версиях там нули.
16 сен 16, 12:41    [19672954]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Eleanor
счетчики работают только там где доступен Resource Governor, т.е. на Enterprise

Спасибо за информацию. Честно говоря не знал об этом
16 сен 16, 12:49    [19672998]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
komrad
Member

Откуда:
Сообщений: 5760
sql cpu
Вопрос, как можно для мониторинга вывести %CPU для каждого MSSQL инстанса? Через Performance Monitor не нашел такой метрики. Варианты через Task Manager громоздкие, нужно цепляться за sqlserv-процесс, PID у них меняются после перезапуска?

если SQL >=2012
+
DECLARE @ts_now bigint = (SELECT cpu_ticks/(cpu_ticks/ms_ticks) FROM sys.dm_os_sys_info WITH (NOLOCK)); 

SELECT TOP(256) SQLProcessUtilization AS [SQL Server Process CPU Utilization], 
               SystemIdle AS [System Idle Process], 
               100 - SystemIdle - SQLProcessUtilization AS [Other Process CPU Utilization], 
               DATEADD(ms, -1 * (@ts_now - [timestamp]), GETDATE()) AS [Event Time] 
FROM (SELECT record.value('(./Record/@id)[1]', 'int') AS record_id, 
			record.value('(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]', 'int') 
			AS [SystemIdle], 
			record.value('(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]', 'int') 
			AS [SQLProcessUtilization], [timestamp] 
	  FROM (SELECT [timestamp], CONVERT(xml, record) AS [record] 
			FROM sys.dm_os_ring_buffers WITH (NOLOCK)
			WHERE ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR' 
			AND record LIKE N'%<SystemHealth>%') AS x) AS y 
ORDER BY record_id DESC OPTION (RECOMPILE);


Отсюда:
https://sqlserverperformance.wordpress.com/2016/06/08/sql-server-diagnostic-information-queries-for-june-2016/

16 сен 16, 13:03    [19673138]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
komrad, запрос конечно хороший, но оно поминутно показывается.
16 сен 16, 13:16    [19673266]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
komrad
Member

Откуда:
Сообщений: 5760
AlanDenton
komrad, запрос конечно хороший, но оно поминутно показывается.

ну мало ли, может автору и не нужен "полный" реал-тайм
16 сен 16, 14:00    [19673551]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
komrad
если SQL >=2012


у меня оно нечто странное временами показывает:

SQL Server Process CPU Utilization System Idle Process Other Process CPU Utilization Event Time
18 97 -15 2016-09-16 13:10:04.063
25 98 -23 2016-09-16 13:09:03.933
36 96 -32 2016-09-16 13:08:03.810
25 96 -21 2016-09-16 13:07:03.697
27 98 -25 2016-09-16 13:06:03.573
38 91 -29 2016-09-16 13:05:03.460
107 63 -70 2016-09-16 13:04:03.333
16 сен 16, 14:02    [19673579]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
komrad
ну мало ли, может автору и не нужен "полный" реал-тайм

Так вот с полным реалтаймом как раз беда. Нормального решения лично я пока еще не нашел, чтобы работал на всех версиях.

Если кто поделится решением, буду благодарен.
16 сен 16, 14:05    [19673609]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
komrad
Member

Откуда:
Сообщений: 5760
daw
komrad
если SQL >=2012


у меня оно нечто странное временами показывает:
+

SQL Server Process CPU Utilization System Idle Process Other Process CPU Utilization Event Time
18 97 -15 2016-09-16 13:10:04.063
25 98 -23 2016-09-16 13:09:03.933
36 96 -32 2016-09-16 13:08:03.810
25 96 -21 2016-09-16 13:07:03.697
27 98 -25 2016-09-16 13:06:03.573
38 91 -29 2016-09-16 13:05:03.460
107 63 -70 2016-09-16 13:04:03.333


а версия какая?

у меня иногда замечал значения больше сотни, разбираться не было времени
16 сен 16, 14:31    [19673754]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
komrad
Member

Откуда:
Сообщений: 5760
AlanDenton
komrad
ну мало ли, может автору и не нужен "полный" реал-тайм

Так вот с полным реалтаймом как раз беда. Нормального решения лично я пока еще не нашел, чтобы работал на всех версиях.

Если кто поделится решением, буду благодарен.

м-м-м, в джобу засунуть powershell и опрос счетчиков на уровне ОС?
16 сен 16, 14:32    [19673766]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
komrad
в джобу засунуть powershell и опрос счетчиков на уровне ОС?

Такое решение тоже гуглил. А именно простым SQL запросом?
16 сен 16, 14:52    [19673913]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
komrad
а версия какая?

у меня иногда замечал значения больше сотни, разбираться не было времени


да, не самая последняя, есть такое.

Microsoft SQL Server 2014 (SP1-CU6) (KB3144524) - 12.0.4449.0 (X64)
Apr 13 2016 12:41:07
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: )
16 сен 16, 15:54    [19674365]     Ответить | Цитировать Сообщить модератору
 Re: CPU % для инстанса  [new]
kjhgора
Guest
А performance монитором писать в таблицу
и читать оттуда простым запросом ?
16 сен 16, 15:58    [19674413]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить