Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: SQL Server
Сведения
| Атрибут | Значение |
|---|---|
| Название продукта | SQL Server |
| ИД события | 17883 |
| Источник событий | MSSQLSERVER |
| Компонент | SQLEngine |
| Символическое имя | SRV_SCHEDULER_NONYIELDING |
| Текст сообщения | Процесс %ld:%ld:%ld (0x%lx) Worker 0x%p, по-видимому, не возвращает управление планировщику %ld. Время создания потока: %I64d. Примерная загрузка ЦП для потока: ядро %I64d мс, пользователь %I64d мс. Эффективность использования процесса %d%%. Бездействие системы %d%%. Интервал: %I64d мс. |
Описание
Указывает, что существует возможная проблема с потоком, не возвращающим планировщику. Эта ошибка может быть вызвана состоянием операционной системы, проблемой среды или программным обеспечением в SQL Server или если SQL Server не получает достаточно циклов для выполнения. Эта ошибка может уйти, если поток в конечном итоге даст.
Действие пользователя
При просмотре сведений об сообщении об ошибке вы увидите, что возникают определенные характеристики. Например:
Если время в пользовательском режиме быстро поднимается и продолжает делать это, вероятно, причина является несвязанным циклом в подсистеме SQL Server, которая неправильно дает.
Если время режима ядра быстро поднимается, поток тратит большую часть времени в операционной системе и требует отладки ядра, чтобы определить первопричину этого поведения.
Если время ядра и время пользователя не увеличиваются быстро, поток, скорее всего, ожидает вызова API, например
WaitForSingleObject,SleepWriteFileилиReadFileвозврата. Или поток может не быть запланирован операционной системой. Условия остановки API обычно требуют отладки режима ядра для определения их первопричины.Если
System Idle %низкий иProcess Utilization %низкий, SQL Server может не получать достаточно циклов ЦП. Проверьте использование ЦП других приложений в системе. Кроме того, проверьте, происходит ли разбиение по страницам в системе. ВыполнениеSELECT * FROM sys.dm_os_ring_buffersтакже может предоставить дополнительные сведения.Если
kernel + userвремя низко, ноProcess Utilization %высокий, условие ошибки может указывать на то, что преемтивные потоки используют все ЦП (например, сборку мусора).
Объединение информации с использованием системы и временем простоя может дать представление о характере проблемы.
Чтобы понять логику обнаружения и распространенные причины возникновения этой ошибки, см. инструкции по диагностике и исправлению ошибок 17883, 17884, 17887 и 17888.