Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Process <block list> appears to be non-yielding on Scheduler <ID>  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 624
Добрый день!
Периодически, 1-2 раз в день падает ошибка вида "Process <block list> appears to be non-yielding on Scheduler <ID>" (подробнее в скриншоте). В этот момент 3-5 минут сервер вообще недоступен.

SELECT @@VERSION
Microsoft SQL Server 2005 - 9.00.5000.00 (X64)   Dec 10 2010 10:38:40   Copyright (c) 1988-2005 Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2) 


Статья по этой ошибке https://support.microsoft.com/en-us/kb/2762557
Пишут, что причина проблемы оператор sort, который не может найти свободной памяти в buffer pool.
Судя по статье BugFix есть только для SQL Server 2012

Пока есть мысль почистить буфер-пул через
CHECKPOINT
GO
DBCC DROPCLEANBUFFERS
GO


Может кто-то сталкивался с такой проблемой и как-то её решил?

К сообщению приложен файл. Размер - 126Kb
13 сен 16, 14:20    [19659389]     Ответить | Цитировать Сообщить модератору
 Re: Process <block list> appears to be non-yielding on Scheduler <ID>  [new]
komrad
Member

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

ну есть еще такая статья:
https://support.microsoft.com/en-us/kb/974205

лечится SP3
наверно в SP4 снова сломали...

а что у вас тут ?
select * from sys.configurations where name like '%server memory%'
select physical_memory_in_bytes/1024/1024 [RAM_MB] from sys.dm_os_sys_info
13 сен 16, 15:12    [19659753]     Ответить | Цитировать Сообщить модератору
 Re: Process <block list> appears to be non-yielding on Scheduler <ID>  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 624
komrad
Oblom,

ну есть еще такая статья:
https://support.microsoft.com/en-us/kb/974205

лечится SP3
наверно в SP4 снова сломали...

а что у вас тут ?
select * from sys.configurations where name like '%server memory%'
select physical_memory_in_bytes/1024/1024 [RAM_MB] from sys.dm_os_sys_info

select * from sys.configurations where name like '%server memory%'

configuration_id	name	value	minimum	maximum	value_in_use	description	is_dynamic	is_advanced
1543	min server memory (MB)	200000	0	2147483647	200000	Minimum size of server memory (MB)	1	1
1544	max server memory (MB)	200000	16	2147483647	200000	Maximum size of server memory (MB)	1	1



select physical_memory_in_bytes/1024/1024 [RAM_MB] from sys.dm_os_sys_info

RAM_MB
262142
13 сен 16, 15:18    [19659802]     Ответить | Цитировать Сообщить модератору
 Re: Process <block list> appears to be non-yielding on Scheduler <ID>  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 624
Oblom, апну, может кто ещё что подскажет
14 сен 16, 09:34    [19662331]     Ответить | Цитировать Сообщить модератору
 Re: Process <block list> appears to be non-yielding on Scheduler <ID>  [new]
komrad
Member

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

а тут как сконфигурировано?

select 
	cpu_count
	, hyperthread_ratio
	, os_priority_class
	, max_workers_count
	, scheduler_count
	, scheduler_total_count
from sys.dm_os_sys_info

select * from sys.configurations where name like '%affinity%'
14 сен 16, 12:35    [19663445]     Ответить | Цитировать Сообщить модератору
 Re: Process <block list> appears to be non-yielding on Scheduler <ID>  [new]
Eleanor
Member

Откуда:
Сообщений: 2922
У меня такое было на SP2. SP3 не помог. Так что проблема не в SP4.

Проблема была в том, что сервер очень слабый и не справляется с нагрузкой.
Несколько помогла оптимизация запросов, добавление индексов, увеличение размера баз, чтобы они больше не прирастали автоматически.
Ошибки non-yielding остались, но стали реже.
14 сен 16, 13:00    [19663642]     Ответить | Цитировать Сообщить модератору
 Re: Process <block list> appears to be non-yielding on Scheduler <ID>  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 624
komrad
Oblom,

а тут как сконфигурировано?

select 
	cpu_count
	, hyperthread_ratio
	, os_priority_class
	, max_workers_count
	, scheduler_count
	, scheduler_total_count
from sys.dm_os_sys_info

select * from sys.configurations where name like '%affinity%'


select 
	cpu_count
	, hyperthread_ratio
	, os_priority_class
	, max_workers_count
	, scheduler_count
	, scheduler_total_count
from sys.dm_os_sys_info

cpu_count	hyperthread_ratio	os_priority_class	max_workers_count	scheduler_count	scheduler_total_count
24	        6	                128	                1248	                        24	                34

select * from sys.configurations where name like '%affinity%'

configuration_id	name	                       value	         minimum	       maximum	        value_in_use	description	is_dynamic	is_advanced
1535	                affinity mask	       0	        -2147483648	2147483647	0	affinity mask	1	1
1549	                affinity64 mask	       0	        -2147483648	2147483647	0	affinity64 mask	1	1
1550	                affinity I/O mask	       0	        -2147483648	2147483647	0	affinity I/O mask	0	1
1551	                affinity64 I/O mask      0	        -2147483648	2147483647	0	affinity64 I/O mask	0	1
14 сен 16, 14:10    [19664151]     Ответить | Цитировать Сообщить модератору
 Re: Process <block list> appears to be non-yielding on Scheduler <ID>  [new]
Eleanor
Member

Откуда:
Сообщений: 2922
Если вместе с ошибкой создается дамп, можно спросить в этой группе. У них там non-yielding пример на такой же версии Sql Server из-за несправляющеся дисковой системы .
14 сен 16, 14:33    [19664318]     Ответить | Цитировать Сообщить модератору
 Re: Process <block list> appears to be non-yielding on Scheduler <ID>  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 624
Словил дамп, пытаюсь посмотреть его через WinDbg, выдается ошибка
*** WARNING: Unable to verify timestamp for sqlservr.exe
*** ERROR: Module load completed but symbols could not be loaded for sqlservr.exe

Запустил с !sym noisy, получил расширенный отчет об ошибке
0:194> kc100
Call Site
ntdll!NtRequestWaitReplyPort
secur32!SecpDeleteSecurityContext
secur32!LsaDeleteSecurityContext
SYMSRV: e:\symbols\sqlservr.exe\4D02B6412652000\sqlservr.exe not found
SYMSRV: http://msdl.microsoft.com/download/symbols/sqlservr.exe/4D02B6412652000/sqlservr.exe not found
DBGHELP: C:\WinDDK\7600.16385.1\Debuggers\sqlservr.exe - file not found
SYMSRV: E:\Symbols\sqlservr.exe\4D02B6412652000\sqlservr.exe not found
SYMSRV: http://msdl.microsoft.com/download/symbols/sqlservr.exe/4D02B6412652000/sqlservr.exe not found
DBGENG: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe - Couldn't map image from disk.
Unable to load image C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe, Win32 error 0n2
DBGHELP: No header for sqlservr.exe. Searching for dbg file
DBGHELP: .\sqlservr.dbg - file not found
DBGHELP: .\exe\sqlservr.dbg - path not found
DBGHELP: .\symbols\exe\sqlservr.dbg - path not found
DBGHELP: sqlservr.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for sqlservr.pdb - no header information available
DBGHELP: sqlservr.pdb - file not found
*** WARNING: Unable to verify timestamp for sqlservr.exe
*** ERROR: Module load completed but symbols could not be loaded for sqlservr.exe
DBGHELP: sqlservr - no symbols loaded
secur32!DeleteSecurityContext
sqlservr
0x0
0x0
0x0

Символы с microsoft загружал с помощью команды
.sympath srv*c:\Websymbols*http://msdl.microsoft.com/download/symbols;
.reload /f

для sqlserver.exe. Для других служб символы подгружаются.

Инструкции брал с https://mssqlwiki.com/tag/process-000-worker-appears-to-be-non-yielding-on-scheduler/
Нашел похожую проблему у буржуев http://microsoft.public.windbg.narkive.com/BFBYIwD5/minidump-of-sql-server-2000, но не понял как он её решил.

Может кто в курсе?
8 ноя 16, 16:44    [19871206]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить