powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите проанализировать высокую загрузку CPU
10 сообщений из 10, страница 1 из 1
Помогите проанализировать высокую загрузку CPU
    #40059658
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, давно хотел разобраться с анализом высокой загрузки CPU, в данный момент появился кандидат, загрузка CPU на одном из серверов с 1го апреля перманентно держится в районе 100%. Хочется разобраться, какой порядок действий поможет выявить и устранить причину.

С чего можно начать?
...
Рейтинг: 0 / 0
Помогите проанализировать высокую загрузку CPU
    #40059671
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите проанализировать высокую загрузку CPU
    #40059685
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

для начала убедитесь, что нагрузку создаёт SQL Server.
...
Рейтинг: 0 / 0
Помогите проанализировать высокую загрузку CPU
    #40059703
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
teCa,

для начала убедитесь, что нагрузку создаёт SQL Server.


Как я понимаю, это как раз указывает на пользовательскую нагрузку от SQL
...
Рейтинг: 0 / 0
Помогите проанализировать высокую загрузку CPU
    #40059705
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если слетели статистики, то нагрузка может сильно возрасти.
...
Рейтинг: 0 / 0
Помогите проанализировать высокую загрузку CPU
    #40059714
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo
Если слетели статистики, то нагрузка может сильно возрасти.

Статистика обновляется каждое утро.
...
Рейтинг: 0 / 0
Помогите проанализировать высокую загрузку CPU
    #40059729
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наиболее прожорливые запросы по CPU time
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
declare @ignore_last_executions_before datetime = dateadd(day, -10, getdate());

select top (30)
 object_schema_name(a.object_id, b.database_id),
 object_name(a.object_id, b.database_id),
 substring(t.text, d.s, d.l), c.query_plan,
 e.avg_worker_time, qs.execution_count, qs.total_worker_time, qs.last_worker_time--, qs.*
from
 sys.dm_exec_query_stats qs outer apply
 (select cast(value as int) from sys.dm_exec_plan_attributes(qs.plan_handle) where attribute = N'objectid') a(object_id) outer apply
 (select cast(value as int) from sys.dm_exec_plan_attributes(qs.plan_handle) where attribute = N'dbid') b(database_id) outer apply
 (select try_cast(query_plan as xml) from sys.dm_exec_text_query_plan(qs.plan_handle, qs.statement_start_offset, qs.statement_end_offset)) c(query_plan) cross apply
 sys.dm_exec_sql_text(qs.sql_handle) t outer apply
 (select (qs.statement_start_offset / 2) + 1, (isnull(nullif(qs.statement_end_offset, -1), datalength(t.text)) - qs.statement_start_offset) / 2 + 1) d(s, l) cross apply
 (select qs.total_worker_time / qs.execution_count) e(avg_worker_time)
where
 qs.last_execution_time > @ignore_last_executions_before
order by
 e.avg_worker_time desc
option
 (recompile);
...
Рейтинг: 0 / 0
Помогите проанализировать высокую загрузку CPU
    #40059790
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

нет, потребление CPU в "мониторе производительности". Потребление может быть вызвано не только службой SQL Server, например, фоновыми обновлениями, компиляцией сборок, виртуальными машинами и так далее.
...
Рейтинг: 0 / 0
Помогите проанализировать высокую загрузку CPU
    #40059803
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

Вот этим запросом проверяю нагрузку на CPU самим SQL:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
DECLARE @ms_ticks_now BIGINT

SELECT @ms_ticks_now = ms_ticks
FROM sys.dm_os_sys_info;

SELECT TOP 50 record_id
	,dateadd(ms, - 1 * (@ms_ticks_now - [timestamp]), GetDate()) AS EventTime
	,SQLProcessUtilization
	,SystemIdle
	,100 - SystemIdle - SQLProcessUtilization AS OtherProcessUtilization
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
		WHERE ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR'
			AND record LIKE '%<SystemHealth>%'
		) AS x
	) AS y
ORDER BY record_id DESC



Как я понимаю, этот запрос исключает нагрузку от сторонних служб, помимо SQLServer
...
Рейтинг: 0 / 0
Помогите проанализировать высокую загрузку CPU
    #40060063
архивариус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите проанализировать высокую загрузку CPU
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]