MSSQLSERVER_17883

적용 대상:SQL Server

세부 사항

attribute
제품 이름 SQL Server
이벤트 ID 17883
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 SRV_SCHEDULER_NONYIELDING
메시지 텍스트 프로세스 %ld:%ld:%ld(0x%lx) 작업자 0x%p가 Scheduler %ld에서 생성되지 않는 것으로 나타납니다. 스레드 생성 시간: %I64d. 사용된 약 스레드 CPU: 커널 %I64d ms, 사용자 %I64d ms. 프로세스 사용률 %d%%. 시스템 유휴 시간 %d%%. 간격: %I64d ms.

설명

스레드가 스케줄러에서 생성되지 않는 데 문제가 있을 수 있음을 나타냅니다. 이 오류는 SQL Server의 운영 체제 조건, 환경 문제 또는 소프트웨어 문제 또는 SQL Server가 실행하기에 충분한 주기를 얻지 못하는 경우에 발생할 수 있습니다. 스레드가 결국 생성되면 이 오류가 사라질 수 있습니다.

사용자 작업

오류 메시지 정보를 보면 특정 동작이 나타나는 것을 볼 수 있습니다. 예:

  • 사용자 모드 시간이 빠르게 증가하고 계속 이렇게 하는 경우 SQL Server 엔진의 바인딩되지 않은 루프가 제대로 생성되지 않는 원인일 수 있습니다.

  • 커널 모드 시간이 빠르게 상승하면 스레드는 운영 체제에서 대부분의 시간을 소비하며 이 동작의 근본 원인을 확인하기 위해 커널 디버깅이 필요합니다.

  • 커널 시간과 사용자 시간이 빠르게 증가하지 않는 경우 스레드는 API 호출(예: WaitForSingleObject, SleepWriteFile또는 ReadFile 반환)을 기다리고 있는 것일 수 있습니다. 또는 운영 체제에서 스레드를 예약하지 않을 수 있습니다. API 중단 조건은 일반적으로 커널 모드 디버깅을 사용하여 근본 원인을 확인해야 합니다.

  • 낮고 Process Utilization % 낮으면 System Idle % SQL Server에서 CPU 주기가 충분하지 않을 수 있습니다. 시스템에서 다른 애플리케이션의 CPU 사용률을 확인합니다. 또한 시스템에서 페이징이 진행 중인지 확인합니다. 실행하면 SELECT * FROM sys.dm_os_ring_buffers 자세한 정보도 제공할 수 있습니다.

  • 시간이 낮지만 Process Utilization % 높으면 kernel + user 오류 조건은 선점 스레드가 모든 CPU(예: 가비지 수집)를 사용 중임을 나타낼 수 있습니다.

정보를 시스템 사용률 및 유휴 시간과 결합하면 문제의 특성에 대한 인사이트를 제공할 수 있습니다.

검색 논리와 이 오류 조건을 생성하는 일반적인 이유를 이해하려면 오류 17883, 17884, 17887 및 17888을 진단하고 수정하는 방법을 참조하세요.