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

Откуда:
Сообщений: 24
Доброго времени суток всем! Есть проблема тормознутости навижена 5 на sql servere 32 гига оперативки 6 винтов ксеон 8 по 2 ядра. Перепробовав различные способы, нарыл в нете такой запрос

WITH Waits AS
(SELECT
wait_type,
wait_time_ms / 1000.0 AS WaitS,
(wait_time_ms - signal_wait_time_ms) / 1000.0 AS ResourceS,
signal_wait_time_ms / 1000.0 AS SignalS,
waiting_tasks_count AS WaitCount,
100.0 * wait_time_ms / SUM (wait_time_ms) OVER() AS Percentage,
ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS RowNum
FROM sys.dm_os_wait_stats
WHERE wait_type NOT IN (
'CLR_SEMAPHORE', 'LAZYWRITER_SLEEP', 'RESOURCE_QUEUE', 'SLEEP_TASK',
'SLEEP_SYSTEMTASK', 'SQLTRACE_BUFFER_FLUSH', 'WAITFOR', 'LOGMGR_QUEUE',
'CHECKPOINT_QUEUE', 'REQUEST_FOR_DEADLOCK_SEARCH', 'XE_TIMER_EVENT', 'BROKER_TO_FLUSH',
'BROKER_TASK_STOP', 'CLR_MANUAL_EVENT', 'CLR_AUTO_EVENT', 'DISPATCHER_QUEUE_SEMAPHORE',
'FT_IFTS_SCHEDULER_IDLE_WAIT', 'XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN', 'BROKER_EVENTHANDLER',
'TRACEWRITE', 'FT_IFTSHC_MUTEX', 'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
'BROKER_RECEIVE_WAITFOR', 'ONDEMAND_TASK_QUEUE', 'DBMIRROR_EVENTS_QUEUE',
'DBMIRRORING_CMD', 'BROKER_TRANSMITTER', 'SQLTRACE_WAIT_ENTRIES',
'SLEEP_BPOOL_FLUSH', 'SQLTRACE_LOCK', 'DBMIRROR_WORKER_QUEUE')
)
SELECT
W1.wait_type AS WaitType, 
CAST (W1.WaitS AS DECIMAL(14, 2)) AS Wait_S,
CAST (W1.ResourceS AS DECIMAL(14, 2)) AS Resource_S,
CAST (W1.SignalS AS DECIMAL(14, 2)) AS Signal_S,
W1.WaitCount AS WaitCount,
CAST (W1.Percentage AS DECIMAL(4, 2)) AS Percentage,
CAST ((W1.WaitS / W1.WaitCount) AS DECIMAL (14, 4)) AS AvgWait_S,
CAST ((W1.ResourceS / W1.WaitCount) AS DECIMAL (14, 4)) AS AvgRes_S,
CAST ((W1.SignalS / W1.WaitCount) AS DECIMAL (14, 4)) AS AvgSig_S
FROM Waits AS W1
INNER JOIN Waits AS W2
ON W2.RowNum <= W1.RowNum
GROUP BY W1.RowNum, W1.wait_type, W1.WaitS, W1.ResourceS, W1.SignalS, W1.WaitCount, W1.Percentage
HAVING SUM (W2.Percentage) - W1.Percentage < 95; -- percentage threshold
GO


Он показывает большое значение DIRTY_PAGE_POLL
Только вот я не могу найти информацию от том, что это такое. Буду очень благодарен за любые дельные ответы.
И что такое HADR_FILESTREAM_IOMGR_IOCOMPLETION тоже нету как и PREEMPTIVE_OS_PIPEOPS

К сообщению приложен файл. Размер - 14Kb
6 дек 13, 06:18    [15250344]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
SQL Server 2012
6 дек 13, 06:22    [15250348]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
Ennor Tiegael
Member

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

Где искали-то, под столом?

Знакомый скрипт, но Пол Рэндалл отфильтровывает обе ваших первых позиции. Не объясняя, правда, почему. Зато вот тут объясняется.

Лучше берите скрипт в версии Рэндалла, там мусора нет.
6 дек 13, 07:21    [15250383]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
да тут я уже прочитал про это, но всеравно спасибо. Это новые счетчики для sql server 2012 их можно не учитывать, хотя я не понял почему. Все три.
DIRTY_PAGE_POLL
HADR_FILESTREAM_IOMGR_IOCOMPLETION
PREEMPTIVE_OS_PIPEOPS

Будем думать дальше
6 дек 13, 07:28    [15250391]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
Ennor Tiegael
Member

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

Ну вот же написано, по первой из моих ссылок, английским по белому:
013: PREEMPTIVE_OS_PIPEOPS
This is SQL Server switching to pre-emptive scheduling mode to call out to Windows for something. These were added for 2008 and haven’t been documented yet (anywhere). The easiest way to figure out what they mean is to remove the PREEMPTIVE_OS_ and then search for what’s left on MSDN – it’ll be the name of a Windows API.
Первые же два вкратце объясняются по второй ссылке (тоже ответ Рэндалла, кстати, гыгы).
6 дек 13, 10:00    [15250913]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Сейчас меня беспокоит
SOS_SCHEDULER_YIELD - нагрузка на проц
на втором месте
PAGEIOLATCH_SH - нагрузка на диски
Такой вопрос знатокам, может ли быть так, что большая нагрузка на процессор возникает в результате проблем с дисковой подсистемой?
6 дек 13, 11:00    [15251396]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
Ennor Tiegael
Member

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

Покажите топ 95% без тех трех, которые вы упоминали раньше. Они сильно перекашивали результаты.
6 дек 13, 11:03    [15251433]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24


К сообщению приложен файл. Размер - 20Kb
6 дек 13, 11:35    [15251684]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Перезапускали sql server
6 дек 13, 11:36    [15251689]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3348
JIEXA72
Перезапускали sql server
Эммм, зря. Погоняйте несколько дней, потом посмотрим.

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

Наберите побольше статистики, в общем.
6 дек 13, 11:54    [15251801]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
CXPACKET как раз и не видать потому что я его вырубил
sp_configure 'max degree of parallelism', 1
6 дек 13, 12:15    [15251936]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Будем гонять))и рыть инфу пока что
6 дек 13, 12:16    [15251939]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Перечитал кучу инфы, никак не могу понять отчего же все тормозит. В приложении (Dynamics Nav 5) отображается простая табличка, с наложенными несколькими фильтрами, зато тормозов куча, листается вверх вниз очень туго. Смотрел на счетчики в перфоманс мониторе (средняя скорость чтения, и записи) все в норм. Правда проц постоянно загружен, даже не в пике. на 20 30 % Ксеон 5320 (2 проца по 4 ядра)

Вот сегодняшний результат, может у кого будут светлые мысли?

К сообщению приложен файл. Размер - 22Kb
9 дек 13, 13:05    [15264109]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
Просто погулять вышел
Guest
Попробуйте посмотреть нагрузку на процессор индивидуально по ядрам. Возможно у вас одно или несколько ядер загружены на 100% а остальные простаивают. И еще все-таки попробуйте понять кто у вас ждет preemptive_os_pipeops. Самый простой способ - поопрашивайте в цикле sys.dm_exec_requests с таким типом ожидания пока оно не вылезет.
9 дек 13, 13:31    [15264312]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
preemptive_os_pipeops это XP_CMDSHELL, копирование бэкапов по ночам, поэтому и попало сюда. БД весит 25 гигов, долго копирует в хранилище.
9 дек 13, 13:37    [15264364]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24


К сообщению приложен файл. Размер - 27Kb
9 дек 13, 13:59    [15264551]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3348
JIEXA72
В приложении (Dynamics Nav 5) отображается простая табличка, с наложенными несколькими фильтрами, зато тормозов куча, листается вверх вниз очень туго.
В таком случае лучше ловить профайлером данный конкретный запрос и смотреть план. Поди, индексов не хватает при разбиении на страницы.
Я так однажды MS CRM вылечил, в нее залили 16К клиентов и их список умирал при попытке отсортировать по нужному столбцу. Раскопал, создал нужный индекс - все взлетело.
9 дек 13, 16:47    [15265922]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Прикол в том, что так будет с любой таблицей. Этот эффект возрастает по мере разрастания БД. Если данные отображаются все, то все ок, если надожить фильтры, то начинает тормозить.
9 дек 13, 19:50    [15267003]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
soljo_ua
Member

Откуда: Киев
Сообщений: 369
JIEXA72,

а посмотреть на каких таблицах есть блокировки и в каком кол-ве, что происходит в момент тормозов, учет заказов, инвентаризация склада или что то типа того. Если у Вас есть какой то "умный" бухгалтер склада и в рабочее время начинает инвентаризировать склад, то повиснет все из-за того что будет лочка на таблицу Warehouse Entry или Item Ledger Entry и никто ничего оприходовать не сможет
9 дек 13, 20:15    [15267082]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Есть такая табличка, Prod. Order Routing Line Просто табличка с маршрутами, в ней куча записей где +1000K, если её прост открыть в форме без фильтров, то все ок, если наложить фильт, то тормоза. Никаких блокировок нету, никаких вычислений нету, просто список который тормозит при большем объеме данных с выборкой по этим данным. п.с. в это время к этой таблице может обращается не один десяток пользователей. и делать тоже самое с ней.
10 дек 13, 06:28    [15268261]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Вот я и думаю, раз показывает SOS_SCHEDULER_YIELD, то нагрузка на проц, который не успевает обрабатывать запросы с условиями которые отправляются на сервер постоянно. Если посмотреть, что он делает, то будет видно, что он безумно и без устали генерит и отправляет запросы к БД, так как отображает данные в "режиме реального времени".
10 дек 13, 07:13    [15268299]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
п.с. делает он это с помощью динамических курсоров
10 дек 13, 07:42    [15268314]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
soljo_ua
Member

Откуда: Киев
Сообщений: 369
JIEXA72,

проблема в том что Навик весь работает построчно и если фильтр по полю по которому нет индекса и при этом лазит еще в другие таблицы то будут тормоза и нагрузка на ЦП потому что у тебя скорее всего по плану идет тупой скан по кластерному индексу - посмотри топ запросов по нагрузке по ЦП и смотри его план и если нужно добавляй индекс, но если индекс добавить тупо сиквелом то при любой модификации таблицы через навик этот индекс будет удален!!
10 дек 13, 11:33    [15269578]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
soljo_ua
Member

Откуда: Киев
Сообщений: 369
и скорее всего запрос будет select top 501 с фильтрами и order by - запросто может уходить много времени на сортировку, так что в первую очередь смотри какие запросы уходят к серваку и смотри их планы
10 дек 13, 11:38    [15269622]     Ответить | Цитировать Сообщить модератору
 Re: Значение DIRTY_PAGE_POLL  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
SELECT  * FROM 
"GTS"."dbo"."ГазТурбоСервис$Prod_ Order Routing Line" 
WHERE (("Status"=3)) AND (("Work Center Group Code"='360')) AND (("Routing Status"=2)) AND (("Item No_"='00066262')) AND  "Status"=3 AND "Prod_ Order No_">'145108'
ORDER BY "Status","Prod_ Order No_","Routing Reference No_","Routing No_","Operation No_" 


Посмотрел профайлом, при просмотре плана такого запроса, предлагается добавить индексы, если "Prod_ Order No_">'145108' вот так как он делает, если же запрос исправить, как бы я стал делать а не навижн "Prod_ Order No_"='145108' то все ок, вопрос, на кой он ставит условие больше >, а не равно =
10 дек 13, 14:08    [15271258]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить