Поделиться через


MSSQLSERVER_17883

Применимо к: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.