Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как найти что грузит диск на сервере?  [new]
TimofeySin
Member

Откуда:
Сообщений: 38
Есть MSSQL 11.0.5058 на WINSRV 2008R2.
Файлы баз данных лежат на системном диске, файлы журнала на другом диске.
Время от времени, длина очереди системного диска становиться >100 единиц, всё умирает, монитор ресурсов ничего не показывает (в смысле начинает показывать, когда очередь падает и кто так грузил не понятно). По логам стало понятно, что это Процесс sqlservr.
Как мне настроить лог в сервер, чтобы стало понятно, кто так грузит то...?
21 сен 17, 14:01    [20812239]     Ответить | Цитировать Сообщить модератору
 Re: как найти что грузит диск на сервере?  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
Мож так?

SELECT * FROM sysprocesses ORDER BY physical_io DESC
21 сен 17, 14:20    [20812362]     Ответить | Цитировать Сообщить модератору
 Re: как найти что грузит диск на сервере?  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
это может быть следствием очень многих моментов
начиная от плохо написанных запросов до неправильного выбора железа
идеальное решение это нанять спеца по сиквелу, чтобы он посмотрел вашу систему

а так посмотрите вот это
select 
*
from 
sys.dm_os_wait_stats  
where 
wait_type like 'pageiolatch%'
order by 
wait_type

так же счётчик Page Life

и вот это
SELECT dm_ws.wait_duration_ms,
dm_ws.wait_type,
dm_es.status,
dm_t.TEXT,
dm_qp.query_plan,
dm_ws.session_ID,
dm_es.cpu_time,
dm_es.memory_usage,
dm_es.logical_reads,
dm_es.total_elapsed_time,
dm_es.program_name,
DB_NAME(dm_r.database_id) DatabaseName,
-- Optional columns
dm_ws.blocking_session_id,
dm_r.wait_resource,
dm_es.login_name,
dm_r.command,
dm_r.last_wait_type
FROM sys.dm_os_waiting_tasks dm_ws
INNER JOIN sys.dm_exec_requests dm_r ON dm_ws.session_id = dm_r.session_id
INNER JOIN sys.dm_exec_sessions dm_es ON dm_es.session_id = dm_r.session_id
CROSS APPLY sys.dm_exec_sql_text (dm_r.sql_handle) dm_t
CROSS APPLY sys.dm_exec_query_plan (dm_r.plan_handle) dm_qp
WHERE dm_es.is_user_process = 1
GO
21 сен 17, 14:24    [20812376]     Ответить | Цитировать Сообщить модератору
 Re: как найти что грузит диск на сервере?  [new]
TimofeySin
Member

Откуда:
Сообщений: 38
Спасибо буду следить. Да я примерно знаю что, но что конкретно не знаю :)
21 сен 17, 16:37    [20813056]     Ответить | Цитировать Сообщить модератору
 Re: как найти что грузит диск на сервере?  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2791
select top 100
  proc_name    = object_schema_name(st.objectid,st.dbid)+'.'+object_name(st.objectid,st.dbid)+case when st.number>1 then isnull(';'+convert(varchar,st.number),'') else '' end,
  sql          = replace(replace(replace(substring(st.text,
                           qs.statement_start_offset/2 + 1, 
                           (case qs.statement_end_offset when -1 then datalength(st.text) else qs.statement_end_offset end - qs.statement_start_offset)/2 + 1),char(13),''),char(10),''),char(9),''),
  disk_reads   = qs.total_physical_reads,
  query_plan   = try_convert(xml,pt.query_plan)

from
              sys.dm_exec_query_stats              qs
  cross apply sys.dm_exec_sql_text (qs.sql_handle) st
  cross apply sys.dm_exec_text_query_plan (qs.plan_handle,qs.statement_start_offset,qs.statement_end_offset) pt
order by
  qs.total_physical_reads desc;

Только я до конца не уверен в достоверности total_physical_reads.
23 сен 17, 09:31    [20817767]     Ответить | Цитировать Сообщить модератору
 Re: как найти что грузит диск на сервере?  [new]
Сруль.
Member

Откуда:
Сообщений: 119
Вопрос, лично для меня, не новый

https://drive.google.com/file/d/0B2hfyDOpVkzjOEV1TFdCaUJ6VmM/view?usp=sharing

Скачайте, если хотите программу с моего Гугл Драйва.
Стреляет без доп.настроек. По крайней мере, должна.
Делалась для себя. Интерфейс поэтому корявый.
Показывает те процессы, которые конкретно долбят сервер, а не сидят в ожидании.
Ну и заодно счётчик диска. Я по простоте душевной счётчик CPU не включил в показ.
По моему, если что тормозит, так это диск.
По любому, застрявшие процессы программа показывает. Давите кнопку RETRIEVE.
Чтобы не грузить пост, остальные объяснения-после, если будет интерес у собрания
и время у меня.
24 сен 17, 12:01    [20818796]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить